use std log


# TODO add licenses
let fonts = [
    [name, feature];
    [
        "AnonymousPro Font",
        font-anonymous_pro
    ],
    [
        "IosevkaTerm Font",
        font-iosevka_term 
    ],
    [
        "Ubuntu Font",
        font-ubuntu
    ],
    [ 
        "Debug log level (only used for debuging)",
        with-debug
    ],
    [
        "Trace log level (only used for advanced debuging)",
        with-trace 
    ],
]


def main [package_file: path] {
    let repo_root = $package_file | path dirname
    let install_root = $env.NUPM_HOME | path join "plugins"
    let selected_fonts = $fonts 
        | input list -d name -m "select features to install"
        | get feature
    
    let name = open ($repo_root | path join "Cargo.toml") | get package.name
    let ext = if ($nu.os-info.name == 'windows') { '.exe' } else { '' }
    let command = $"cargo install --path ($repo_root) --root ($install_root) --features=\"($selected_fonts | str join ',')\""
    log info $"building using `($command)`" 
    nu --commands $"($command)"
    plugin add $"($install_root | path join "bin" $name)($ext)"
    log info "do not forget to restart Nushell for the plugin to be fully available!"
    nu ($repo_root | path join scripts theme_exporter.nu)
}
