mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-03-06 20:01:43 +00:00
chore: fish: migrate back to nvm
This commit is contained in:
70
config/fish/functions/__nvm_run.fish
Normal file
70
config/fish/functions/__nvm_run.fish
Normal file
@@ -0,0 +1,70 @@
|
||||
function __nvm_run
|
||||
set count (count $argv)
|
||||
|
||||
if test "$count" -le 0
|
||||
echo 'No params'
|
||||
return 1
|
||||
end
|
||||
|
||||
if test (uname -s) = 'Darwin'; and string match -q "*versions/node/*/bin" $PATH
|
||||
set -l nvm_node_path (string match "*versions/node/*/bin" $PATH)
|
||||
set -l nvm_index (contains -i -- $nvm_node_path $PATH)
|
||||
if test $nvm_index -gt 1
|
||||
set -gx PATH $nvm_node_path (string match -v $nvm_node_path $PATH)
|
||||
end
|
||||
end
|
||||
|
||||
function run_command
|
||||
set stack (status stack-trace | grep called | cut -d " " -f 7)
|
||||
set count (count $argv)
|
||||
|
||||
if type -fq $argv[1]; and test "$stack[1]" != (type -fP $argv[1])
|
||||
set count (count $argv)
|
||||
if test "$count" -ge 2
|
||||
set args $argv[2..-1]
|
||||
|
||||
# https://stackoverflow.com/questions/45237675/proxying-arguments-from-one-function-to-a-command/45238056#45238056
|
||||
eval (string escape -- (type -fP $argv[1]) $args)
|
||||
else
|
||||
eval (string escape -- (type -fP $argv[1]))
|
||||
end
|
||||
else
|
||||
echo (set_color -o)"Fish nvm:"(set_color normal) "'$argv[1]' is currently not installed, try running npm i -g $argv[1]"
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
function can_run_command
|
||||
if type -P $argv[1] > /dev/null 2>&1; or type -P node > /dev/null 2>&1
|
||||
return
|
||||
else
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
function run_default
|
||||
nvm use default > /dev/null
|
||||
set -gx NVM_HAS_RUN 1
|
||||
if can_run_command $argv[1]
|
||||
run_command $argv
|
||||
end
|
||||
end
|
||||
|
||||
if not test -n "$NVM_HAS_RUN"
|
||||
if test -f .nvmrc;
|
||||
set nvm_output (nvm use)
|
||||
set nvm_status $status
|
||||
if test $nvm_status -gt 0
|
||||
echo $nvm_output
|
||||
end
|
||||
if test $nvm_status -eq 0; and can_run_command $argv[1]
|
||||
set -gx NVM_HAS_RUN 1
|
||||
run_command $argv
|
||||
end
|
||||
else
|
||||
run_default $argv
|
||||
end
|
||||
else
|
||||
run_command $argv
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user