-
Notifications
You must be signed in to change notification settings - Fork 21
/
nvm.fish
53 lines (48 loc) · 1.44 KB
/
nvm.fish
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function nvm-fast
set -q NVM_DIR ; or set -l NVM_DIR ~/.nvm
set -l brigand_nvm_fish_path $NVM_DIR/versions/node
if test (count $argv[1]) -lt 1
echo 'nvm-fast: at least one argument is required'
end
set -l command $argv[1]
if test $command = 'use'
set target_version "unknown"
if test (count $argv) -eq 1
if test -f .nvmrc
set target_version (cat .nvmrc)
else
echo "Error: No version provided and no .nvmrc found"
return
end
else
set target_version $argv[2]
end
set -l target_version $target_version
set -l matched_version (bash -c "source $NVM_DIR/nvm.sh --no-use; nvm_version $target_version")
if test -z $matched_version -o $matched_version = 'N/A'
echo "No version installed for $target_version, run nvm install $target_version"
echo "Installed versions: "
for file in $brigand_nvm_fish_path/v*
echo ' -' $file
end
else
set -l new_path (string match -ev "$brigand_nvm_fish_path" $PATH)
if test $matched_version != 'system'
set new_path $brigand_nvm_fish_path/$matched_version/bin $new_path
end
set -gx PATH $new_path
set -gx NVM_BIN (which node)
end
else
bash -c "source $NVM_DIR/nvm.sh --no-use; nvm $argv"
set -gx NVM_BIN (which node)
end
end
function nvm
switch "$FISH_VERSION"
case 2.0.0 2.1.0 2.1.1 2.1.2 2.2.0 2.2b1 2.3.0 2.3.1 2.3b1 2.3b2 2.4.0 2.4b1 2.5.0 2.5b1
echo "You need fish 2.6.0 or higher to use fast-nvm-fish." 1>&2
return 1
end
nvm-fast $argv
end