mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-10 22:31:51 +00:00
ported rvm-shell from RVM into nvm as nvm-shell.
This commit is contained in:
parent
77ba1f5902
commit
7f08fa41da
14
LICENSE
Normal file
14
LICENSE
Normal file
@ -0,0 +1,14 @@
|
||||
Copyright (c) 2009-2011 Wayne E. Seguin
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
99
bin/nvm-shell
Executable file
99
bin/nvm-shell
Executable file
@ -0,0 +1,99 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export HOME="${HOME%%+(\/)}" # Remove trailing slashes if they exist on HOME
|
||||
|
||||
if (( ${nvm_ignore_nvmrc:=0} == 0 ))
|
||||
then
|
||||
for nvmrc in /etc/nvmrc "$HOME/.nvmrc"
|
||||
do
|
||||
if [[ -f "$nvmrc" ]]
|
||||
then
|
||||
if \grep '^\s*nvm .*$' "$nvmrc" >/dev/null 2>&1
|
||||
then
|
||||
printf "\nError: $nvmrc is for nvm settings only.\nnvm CLI may NOT be called from within $nvmrc. \nSkipping the loading of $nvmrc"
|
||||
return 1
|
||||
else
|
||||
source "$nvmrc"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -z "${nvm_path:-}" ]]
|
||||
then
|
||||
# Set the default sandboxed value.
|
||||
# TODO: Alter the variable names to make sense
|
||||
if [[ -z "${nvm_user_install_flag:-}" ]]
|
||||
then
|
||||
if (( UID == 0 )) ||
|
||||
[[ -n "${nvm_prefix:-}" && "${nvm_prefix:-}" != "${HOME}" ]]
|
||||
then
|
||||
nvm_user_install_flag=0
|
||||
else
|
||||
nvm_user_install_flag=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "${nvm_prefix:-}" ]]
|
||||
then
|
||||
if (( ${nvm_user_install_flag:=0} == 0 ))
|
||||
then
|
||||
nvm_prefix="/usr/local"
|
||||
elif [[ -n "$HOME" ]]
|
||||
then
|
||||
nvm_prefix="$HOME"
|
||||
else
|
||||
echo "No \$nvm_prefix was provided and "
|
||||
echo "$(id | \sed -e's/^[^(]*(//' -e 's/).*//') has no \$HOME defined."
|
||||
echo "Halting loading of NVM."
|
||||
nvm_load_nvm=0
|
||||
fi
|
||||
fi
|
||||
|
||||
true "${nvm_prefix/nvm/scripts}" # Fix nvm_prefix changes, older installs.
|
||||
|
||||
if [[ -z "${nvm_path:-}" ]]
|
||||
then
|
||||
if [[ "$nvm_prefix" = "$HOME" ]]
|
||||
then
|
||||
nvm_path="${nvm_prefix}/.nvm"
|
||||
else
|
||||
nvm_path="${nvm_prefix}/nvm"
|
||||
fi
|
||||
fi
|
||||
export nvm_path="${nvm_path%%+(\/)}"
|
||||
fi
|
||||
|
||||
__nvm_shell_lookup_script()
|
||||
{
|
||||
local relative_scripts_dir
|
||||
relative_scripts_dir="$(dirname -- "$(dirname -- "$0")")"
|
||||
for directory in "$HOME/.nvm" "/usr/local/nvm" "$relative_scripts_dir"; do
|
||||
if [[ -d "$directory" && -s "$directory/nvm.sh" ]]; then
|
||||
echo "$directory/nvm.sh"
|
||||
return
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if [[ -n "$1" && ! -f "$1" && -n "$(echo "$1" | \grep -v '^-')" ]]; then
|
||||
nvm_shell_node_string="$1"
|
||||
shift
|
||||
fi
|
||||
|
||||
nvm_shell_nvm_path="$(__nvm_shell_lookup_script)"
|
||||
if [[ -n "$nvm_shell_nvm_path" ]]; then
|
||||
source "$nvm_shell_nvm_path"
|
||||
# Setup as expected.
|
||||
if [[ -n "$nvm_shell_node_string" ]]; then
|
||||
nvm use "$nvm_shell_node_string"
|
||||
if [[ "$?" -gt 0 ]]; then
|
||||
echo "Error: NVM was unable to use '$nvm_shell_node_string'" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
nvm use default >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
exec bash "$@"
|
Loading…
Reference in New Issue
Block a user