diff --git a/modules/fnm/fnm.nu b/modules/fnm/fnm.nu index 0cad349b..7787db85 100644 --- a/modules/fnm/fnm.nu +++ b/modules/fnm/fnm.nu @@ -1,20 +1,22 @@ export-env { def fnm-env [] { mut env_vars = {} - let pwsh_vars = (^fnm env --shell power-shell) - let var_table = ($pwsh_vars - | lines - | parse "$env:{key} = \"{value}\"" + let pwsh_vars = ( + ^fnm env --shell power-shell | + lines | + parse "$env:{key} = \"{value}\"" ) - for v in $var_table { - mut value: any = null - if ($v.key | str downcase) == 'path' { - $value = ($v.value | split row (char esep)) - } else { - $value = $v.value - } - $env_vars = ($env_vars | insert $v.key $value) + + # fnm-prefixed vars + for v in ($pwsh_vars | range 1..) { + $env_vars = ($env_vars | insert $v.key $v.value) } + + # path + let env_used_path = ($env | columns | where {str downcase | $in == "path"} | get 0) + let path_value = ($pwsh_vars | get 0.value | split row (char esep)) + $env_vars = ($env_vars | insert $env_used_path $path_value) + return $env_vars }