Skip to content

Commit 10fc379

Browse files
authored
fix(fnm): Automatic version switching failed. (#1064)
![image](https://github.com/user-attachments/assets/c31f7a3a-e312-4773-bb25-5e3c10747bd6)
1 parent c517cd0 commit 10fc379

File tree

1 file changed

+47
-47
lines changed

1 file changed

+47
-47
lines changed

modules/fnm/fnm.nu

+47-47
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
1-
export-env {
2-
def fnm-env [] {
3-
mut env_vars = {}
4-
let pwsh_vars = (
5-
^fnm env --shell power-shell |
6-
lines |
7-
parse "$env:{key} = \"{value}\""
8-
)
9-
10-
# fnm-prefixed vars
11-
for v in ($pwsh_vars | slice 1..) {
12-
$env_vars = ($env_vars | insert $v.key $v.value)
13-
}
14-
15-
# path
16-
let env_used_path = ($env | columns | where {str downcase | $in == "path"} | get 0)
17-
let path_value = ($pwsh_vars | get 0.value | split row (char esep))
18-
$env_vars = ($env_vars | insert $env_used_path $path_value)
19-
20-
return $env_vars
21-
}
22-
23-
if not (which fnm | is-empty) {
24-
fnm-env | load-env
25-
26-
$env.config = (
27-
$env.config?
28-
| default {}
29-
| upsert hooks { default {} }
30-
| upsert hooks.env_change { default {} }
31-
| upsert hooks.env_change.PWD { default [] }
32-
)
33-
let __fnm_hooked = (
34-
$env.config.hooks.env_change.PWD | any { try { get __fnm_hook } catch { false } }
35-
)
36-
if not $__fnm_hooked {
37-
$env.config.hooks.env_change.PWD = ($env.config.hooks.env_change.PWD | append {
38-
__fnm_hook: true,
39-
code: {|before, after|
40-
if ('FNM_DIR' in $env) and ([.nvmrc .node-version] | path exists | any { |it| $it }) {
41-
(^fnm use); (fnm-env | load-env)
42-
}
43-
}
44-
})
45-
}
46-
}
47-
}
1+
export-env {
2+
def fnm-env [] {
3+
mut env_vars = {}
4+
let pwsh_vars = (
5+
^fnm env --shell power-shell | lines | parse "$env:{key} = \"{value}\""
6+
)
7+
8+
# fnm-prefixed vars
9+
for v in ($pwsh_vars | slice 1..) {
10+
$env_vars = ($env_vars | insert $v.key $v.value)
11+
}
12+
13+
# path
14+
let env_used_path = ($env | columns | where { str downcase | $in == "path" } | get 0)
15+
let path_value = ($pwsh_vars | get 0.value | split row (char esep))
16+
$env_vars = ($env_vars | insert $env_used_path $path_value)
17+
18+
return $env_vars
19+
}
20+
21+
if not (which fnm | is-empty) {
22+
fnm-env | load-env
23+
24+
$env.config = (
25+
$env.config?
26+
| default {}
27+
| upsert hooks { default {} }
28+
| upsert hooks.env_change { default {} }
29+
| upsert hooks.env_change.PWD { default [] }
30+
)
31+
let __fnm_hooked = (
32+
$env.config.hooks.env_change.PWD | any { try { get __fnm_hook } catch { false } }
33+
)
34+
if not $__fnm_hooked {
35+
$env.config.hooks.env_change.PWD = (
36+
$env.config.hooks.env_change.PWD | append {
37+
__fnm_hook: true
38+
code: {|before, after|
39+
if ('FNM_DIR' in $env) and ([.nvmrc .node-version] | path exists | any {|it| $it }) {
40+
^fnm use
41+
}
42+
}
43+
}
44+
)
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)