Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00f3ba0831 | ||
|
|
0f1efc825e | ||
|
|
c966204cd6 | ||
|
|
d72b35b7b8 | ||
|
|
d50a0f46e9 | ||
|
|
82393f5b36 | ||
|
|
a1a8e5a51b | ||
|
|
108f630732 | ||
|
|
96e73825bd | ||
|
|
9fc20bb14b | ||
|
|
3401d15a18 | ||
|
|
394e8505d9 | ||
|
|
fc86834e29 | ||
|
|
609d9ee4ea | ||
|
|
70370a857f | ||
|
|
65a986c633 | ||
|
|
3cc5d6af67 | ||
|
|
999c4111c1 | ||
|
|
3d69cf7437 | ||
|
|
207521d54b | ||
|
|
7750253bca | ||
|
|
14b23bfa95 | ||
|
|
bf7bd3e793 | ||
|
|
2b63f37f8d | ||
|
|
230b479648 |
@@ -1,6 +1,9 @@
|
|||||||
language: c # defaults to ruby
|
language: c # defaults to ruby
|
||||||
|
addons:
|
||||||
|
apt_packages:
|
||||||
|
- zsh
|
||||||
|
- ksh
|
||||||
install:
|
install:
|
||||||
- sudo apt-get install zsh -y # ksh
|
|
||||||
- (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*)
|
- (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*)
|
||||||
- chmod +x /tmp/urchin/package/urchin
|
- chmod +x /tmp/urchin/package/urchin
|
||||||
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
||||||
|
|||||||
@@ -16,11 +16,11 @@ Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creati
|
|||||||
|
|
||||||
To install you could use the [install script][2] using cURL:
|
To install you could use the [install script][2] using cURL:
|
||||||
|
|
||||||
curl https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash
|
curl https://raw.githubusercontent.com/creationix/nvm/v0.24.2/install.sh | bash
|
||||||
|
|
||||||
or Wget:
|
or Wget:
|
||||||
|
|
||||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash
|
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.2/install.sh | bash
|
||||||
|
|
||||||
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`).</sub>
|
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`).</sub>
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But
|
|||||||
nvm install -s 0.8.6
|
nvm install -s 0.8.6
|
||||||
|
|
||||||
[1]: https://github.com/creationix/nvm.git
|
[1]: https://github.com/creationix/nvm.git
|
||||||
[2]: https://github.com/creationix/nvm/blob/v0.24.0/install.sh
|
[2]: https://github.com/creationix/nvm/blob/v0.24.2/install.sh
|
||||||
[3]: https://travis-ci.org/creationix/nvm
|
[3]: https://travis-ci.org/creationix/nvm
|
||||||
[Urchin]: https://github.com/scraperwiki/urchin
|
[Urchin]: https://github.com/scraperwiki/urchin
|
||||||
[Fish]: http://fishshell.com
|
[Fish]: http://fishshell.com
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
nvm_latest_version() {
|
nvm_latest_version() {
|
||||||
echo "v0.24.0"
|
echo "v0.24.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
131
nvm.sh
131
nvm.sh
@@ -222,8 +222,10 @@ nvm_version() {
|
|||||||
return $?
|
return $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local NVM_NODE_PREFIX
|
||||||
|
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||||
case "_$PATTERN" in
|
case "_$PATTERN" in
|
||||||
"_$(nvm_node_prefix)" | "_$(nvm_node_prefix)-")
|
"_$NVM_NODE_PREFIX" | "_$NVM_NODE_PREFIX-")
|
||||||
PATTERN="stable"
|
PATTERN="stable"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -259,14 +261,12 @@ nvm_remote_version() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_remote_versions() {
|
nvm_remote_versions() {
|
||||||
local NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
local NVM_IOJS_PREFIX
|
||||||
|
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||||
local PATTERN
|
local PATTERN
|
||||||
PATTERN="$1"
|
PATTERN="$1"
|
||||||
if [ "_$PATTERN" = "_io.js" ]; then
|
|
||||||
PATTERN="$NVM_IOJS_PREFIX"
|
|
||||||
fi
|
|
||||||
case "_$PATTERN" in
|
case "_$PATTERN" in
|
||||||
"_$NVM_IOJS_PREFIX")
|
"_$NVM_IOJS_PREFIX" | "_io.js")
|
||||||
VERSIONS="$(nvm_ls_remote_iojs)"
|
VERSIONS="$(nvm_ls_remote_iojs)"
|
||||||
;;
|
;;
|
||||||
"_$(nvm_node_prefix)")
|
"_$(nvm_node_prefix)")
|
||||||
@@ -307,7 +307,7 @@ nvm_is_valid_version() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_normalize_version() {
|
nvm_normalize_version() {
|
||||||
echo "$1" | command sed -e 's/^v//' | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
|
echo "${1#v*}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_ensure_version_prefix() {
|
nvm_ensure_version_prefix() {
|
||||||
@@ -324,8 +324,7 @@ nvm_format_version() {
|
|||||||
local VERSION
|
local VERSION
|
||||||
VERSION="$(nvm_ensure_version_prefix "$1")"
|
VERSION="$(nvm_ensure_version_prefix "$1")"
|
||||||
if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then
|
if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then
|
||||||
VERSION="$(echo "$VERSION" | command sed -e 's/\.*$/.0/')"
|
nvm_format_version "${VERSION%*\.}.0"
|
||||||
nvm_format_version "$VERSION"
|
|
||||||
else
|
else
|
||||||
echo "$VERSION"
|
echo "$VERSION"
|
||||||
fi
|
fi
|
||||||
@@ -338,10 +337,12 @@ nvm_num_version_groups() {
|
|||||||
echo "0"
|
echo "0"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
VERSION="${VERSION#v*}"
|
||||||
|
VERSION="${VERSION%\.}"
|
||||||
local NVM_NUM_DOTS
|
local NVM_NUM_DOTS
|
||||||
NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/^v//' | command sed -e 's/\.$//' | command sed -e 's/[^\.]//g')
|
NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/[^\.]//g')
|
||||||
local NVM_NUM_GROUPS
|
local NVM_NUM_GROUPS
|
||||||
NVM_NUM_GROUPS=".$NVM_NUM_DOTS"
|
NVM_NUM_GROUPS=".$NVM_NUM_DOTS" # add extra dot, since it's (n - 1) dots at this point
|
||||||
echo "${#NVM_NUM_GROUPS}"
|
echo "${#NVM_NUM_GROUPS}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -478,7 +479,6 @@ nvm_resolve_local_alias() {
|
|||||||
VERSION="$(nvm_resolve_alias "$1")"
|
VERSION="$(nvm_resolve_alias "$1")"
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
if [ -z "$VERSION" ]; then
|
if [ -z "$VERSION" ]; then
|
||||||
echo "N/A"
|
|
||||||
return $EXIT_CODE
|
return $EXIT_CODE
|
||||||
fi
|
fi
|
||||||
if [ "_$VERSION" != "_∞" ]; then
|
if [ "_$VERSION" != "_∞" ]; then
|
||||||
@@ -496,7 +496,8 @@ nvm_node_prefix() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_is_iojs_version() {
|
nvm_is_iojs_version() {
|
||||||
[ "_$(echo "$1" | cut -c1-5)" = "_iojs-" ]
|
case "$1" in iojs-*) return 0 ;; esac
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_add_iojs_prefix() {
|
nvm_add_iojs_prefix() {
|
||||||
@@ -509,7 +510,7 @@ nvm_strip_iojs_prefix() {
|
|||||||
if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then
|
if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo "$1" | command sed "s/^$NVM_IOJS_PREFIX-//"
|
echo "${1#"$NVM_IOJS_PREFIX"-*}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -546,7 +547,12 @@ nvm_ls() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# If it looks like an explicit version, don't do anything funny
|
# If it looks like an explicit version, don't do anything funny
|
||||||
if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then
|
local NVM_PATTERN_STARTS_WITH_V
|
||||||
|
case $PATTERN in
|
||||||
|
v*) NVM_PATTERN_STARTS_WITH_V=true ;;
|
||||||
|
*) NVM_PATTERN_STARTS_WITH_V=false ;;
|
||||||
|
esac
|
||||||
|
if [ $NVM_PATTERN_STARTS_WITH_V = true ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then
|
||||||
if [ -d "$(nvm_version_path "$PATTERN")" ]; then
|
if [ -d "$(nvm_version_path "$PATTERN")" ]; then
|
||||||
VERSIONS="$PATTERN"
|
VERSIONS="$PATTERN"
|
||||||
elif [ -d "$(nvm_version_path "$(nvm_add_iojs_prefix "$PATTERN")")" ]; then
|
elif [ -d "$(nvm_version_path "$(nvm_add_iojs_prefix "$PATTERN")")" ]; then
|
||||||
@@ -559,7 +565,7 @@ nvm_ls() {
|
|||||||
local NUM_VERSION_GROUPS
|
local NUM_VERSION_GROUPS
|
||||||
NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")"
|
NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")"
|
||||||
if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then
|
if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then
|
||||||
PATTERN="$(echo "$PATTERN" | command sed -e 's/\.*$//g')."
|
PATTERN="${PATTERN%*\.}."
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -604,17 +610,20 @@ nvm_ls() {
|
|||||||
fi
|
fi
|
||||||
if [ -n "$NVM_DIRS_TO_SEARCH" ]; then
|
if [ -n "$NVM_DIRS_TO_SEARCH" ]; then
|
||||||
VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \
|
VERSIONS="$(command find $NVM_DIRS_TO_SEARCH -maxdepth 1 -type d -name "$PATTERN*" \
|
||||||
| command sed "s#$NVM_VERSION_DIR_IOJS/#"$NVM_IOJS_PREFIX"-#" \
|
| command sed "
|
||||||
| command grep -v "$NVM_VERSION_DIR_IOJS" \
|
s#$NVM_VERSION_DIR_IOJS/#$NVM_IOJS_PREFIX-#;
|
||||||
| command sed "s#^$NVM_DIR/##" \
|
\#$NVM_VERSION_DIR_IOJS# d;
|
||||||
| command grep -v -e '^versions$' \
|
s#^$NVM_DIR/##;
|
||||||
| command sed 's#^versions/##' \
|
\#^versions\$# d;
|
||||||
| sed -e "s/^v/$NVM_NODE_PREFIX-v/" \
|
s#^versions/##;
|
||||||
| sed -e "s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#" | sed -e "s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \
|
s#^v#$NVM_NODE_PREFIX-v#;
|
||||||
|
s#^\($NVM_IOJS_PREFIX\)[-/]v#\1.v#;
|
||||||
|
s#^\($NVM_NODE_PREFIX\)[-/]v#\1.v#" \
|
||||||
| command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \
|
| command sort -t. -u -k 2.2,2n -k 3,3n -k 4,4n \
|
||||||
| command sort -s -t- -k1.1,1.1 \
|
| command sort -s -t- -k1.1,1.1 \
|
||||||
| command sed "s/^\($NVM_IOJS_PREFIX\)\./\1-/" \
|
| command sed "
|
||||||
| command sed "s/^$NVM_NODE_PREFIX\.//")"
|
s/^\($NVM_IOJS_PREFIX\)\./\1-/;
|
||||||
|
s/^$NVM_NODE_PREFIX\.//")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
|
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
|
||||||
@@ -1112,8 +1121,8 @@ nvm() {
|
|||||||
version_not_provided=1
|
version_not_provided=1
|
||||||
nvm_rc_version
|
nvm_rc_version
|
||||||
if [ -z "$NVM_RC_VERSION" ]; then
|
if [ -z "$NVM_RC_VERSION" ]; then
|
||||||
nvm help
|
>&2 nvm help
|
||||||
return
|
return 127
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1149,15 +1158,19 @@ nvm() {
|
|||||||
|
|
||||||
while [ $# -ne 0 ]
|
while [ $# -ne 0 ]
|
||||||
do
|
do
|
||||||
if [ "_$(echo "$1" | command cut -c 1-26)" = "_--reinstall-packages-from=" ]; then
|
case "$1" in
|
||||||
|
--reinstall-packages-from=*)
|
||||||
PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 27-)"
|
PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 27-)"
|
||||||
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")"
|
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")"
|
||||||
elif [ "_$(echo "$1" | command cut -c 1-21)" = "_--copy-packages-from=" ]; then
|
;;
|
||||||
|
--copy-packages-from=*)
|
||||||
PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)"
|
PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)"
|
||||||
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")"
|
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")"
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1"
|
ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1"
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -1218,7 +1231,10 @@ nvm() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"uninstall" )
|
"uninstall" )
|
||||||
[ $# -ne 2 ] && nvm help && return
|
if [ $# -ne 2 ]; then
|
||||||
|
>&2 nvm help
|
||||||
|
return 127
|
||||||
|
fi
|
||||||
|
|
||||||
local PATTERN
|
local PATTERN
|
||||||
PATTERN="$2"
|
PATTERN="$2"
|
||||||
@@ -1298,11 +1314,6 @@ nvm() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"use" )
|
"use" )
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
nvm help
|
|
||||||
return 127
|
|
||||||
fi
|
|
||||||
|
|
||||||
local PROVIDED_VERSION
|
local PROVIDED_VERSION
|
||||||
if [ $# -eq 1 ]; then
|
if [ $# -eq 1 ]; then
|
||||||
nvm_rc_version
|
nvm_rc_version
|
||||||
@@ -1330,7 +1341,7 @@ nvm() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$VERSION" ]; then
|
if [ -z "$VERSION" ]; then
|
||||||
nvm help
|
>&2 nvm help
|
||||||
return 127
|
return 127
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1350,6 +1361,8 @@ nvm() {
|
|||||||
return 8
|
return 8
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# This nvm_ensure_version_installed call can be a performance bottleneck
|
||||||
|
# on shell startup. Perhaps we can optimize it away or make it faster.
|
||||||
nvm_ensure_version_installed "$PROVIDED_VERSION"
|
nvm_ensure_version_installed "$PROVIDED_VERSION"
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
if [ "$EXIT_CODE" != "0" ]; then
|
if [ "$EXIT_CODE" != "0" ]; then
|
||||||
@@ -1400,7 +1413,7 @@ nvm() {
|
|||||||
VERSION='N/A'
|
VERSION='N/A'
|
||||||
fi
|
fi
|
||||||
if [ $VERSION = "N/A" ]; then
|
if [ $VERSION = "N/A" ]; then
|
||||||
nvm help
|
>&2 nvm help
|
||||||
return 127
|
return 127
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -1549,7 +1562,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
|||||||
VERSION="$2"
|
VERSION="$2"
|
||||||
fi
|
fi
|
||||||
if [ -z "$VERSION" ]; then
|
if [ -z "$VERSION" ]; then
|
||||||
nvm help
|
>&2 nvm help
|
||||||
return 127
|
return 127
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1633,14 +1646,17 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
|||||||
local NVM_ALIAS_DIR
|
local NVM_ALIAS_DIR
|
||||||
NVM_ALIAS_DIR="$(nvm_alias_path)"
|
NVM_ALIAS_DIR="$(nvm_alias_path)"
|
||||||
command mkdir -p "$NVM_ALIAS_DIR"
|
command mkdir -p "$NVM_ALIAS_DIR"
|
||||||
[ $# -ne 2 ] && nvm help && return 127
|
if [ $# -ne 2 ]; then
|
||||||
|
>&2 nvm help
|
||||||
|
return 127
|
||||||
|
fi
|
||||||
[ ! -f "$NVM_ALIAS_DIR/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return
|
[ ! -f "$NVM_ALIAS_DIR/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return
|
||||||
command rm -f "$NVM_ALIAS_DIR/$2"
|
command rm -f "$NVM_ALIAS_DIR/$2"
|
||||||
echo "Deleted alias $2"
|
echo "Deleted alias $2"
|
||||||
;;
|
;;
|
||||||
"reinstall-packages" | "copy-packages" )
|
"reinstall-packages" | "copy-packages" )
|
||||||
if [ $# -ne 2 ]; then
|
if [ $# -ne 2 ]; then
|
||||||
nvm help
|
>&2 nvm help
|
||||||
return 127
|
return 127
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1652,21 +1668,32 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
|||||||
return 2
|
return 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local INSTALLS
|
local NPMLIST
|
||||||
if [ "_$PROVIDED_VERSION" = "_system" ]; then
|
if [ "_$PROVIDED_VERSION" = "_system" ]; then
|
||||||
if ! nvm_has_system_node && ! nvm_has_system_iojs; then
|
if ! nvm_has_system_node && ! nvm_has_system_iojs; then
|
||||||
echo 'No system version of node or io.js detected.' >&2
|
echo 'No system version of node or io.js detected.' >&2
|
||||||
return 3
|
return 3
|
||||||
fi
|
fi
|
||||||
INSTALLS=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -v npm | command xargs)
|
NPMLIST=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2)
|
||||||
else
|
else
|
||||||
local VERSION
|
local VERSION
|
||||||
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||||
INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2 | command grep -o -e ' [^@]*' | command cut -c 2- | command grep -v npm | command xargs)
|
NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local INSTALLS
|
||||||
|
INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs)
|
||||||
|
|
||||||
echo "Copying global packages from $VERSION..."
|
echo "Copying global packages from $VERSION..."
|
||||||
echo "$INSTALLS" | command xargs npm install -g --quiet
|
echo "$INSTALLS" | command xargs npm install -g --quiet
|
||||||
|
|
||||||
|
local LINKS
|
||||||
|
LINKS=$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')
|
||||||
|
|
||||||
|
echo "Linking global packages from $VERSION..."
|
||||||
|
for LINK in $LINKS; do
|
||||||
|
(cd "$LINK" && npm link)
|
||||||
|
done
|
||||||
;;
|
;;
|
||||||
"clear-cache" )
|
"clear-cache" )
|
||||||
command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null
|
command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null
|
||||||
@@ -1676,7 +1703,7 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
|||||||
nvm_version $2
|
nvm_version $2
|
||||||
;;
|
;;
|
||||||
"--version" )
|
"--version" )
|
||||||
echo "0.24.0"
|
echo "0.24.2"
|
||||||
;;
|
;;
|
||||||
"unload" )
|
"unload" )
|
||||||
unset -f nvm nvm_print_versions nvm_checksum \
|
unset -f nvm nvm_print_versions nvm_checksum \
|
||||||
@@ -1690,25 +1717,25 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
|||||||
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1
|
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
nvm help
|
>&2 nvm help
|
||||||
|
return 127
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_supports_source_options() {
|
nvm_supports_source_options() {
|
||||||
[ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ]
|
[ "_$(echo 'echo $1' | . /dev/stdin yes 2> /dev/null)" = "_yes" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VERSION="$(nvm_alias default 2>/dev/null || echo)"
|
||||||
if nvm_supports_source_options && [ "_$1" = "_--install" ]; then
|
if nvm_supports_source_options && [ "_$1" = "_--install" ]; then
|
||||||
VERSION="$(nvm_alias default 2>/dev/null)"
|
|
||||||
if [ -n "$VERSION" ]; then
|
if [ -n "$VERSION" ]; then
|
||||||
nvm install "$VERSION" >/dev/null
|
nvm install "$VERSION" >/dev/null
|
||||||
elif nvm_rc_version >/dev/null 2>&1; then
|
elif nvm_rc_version >/dev/null 2>&1; then
|
||||||
nvm install >/dev/null
|
nvm install >/dev/null
|
||||||
fi
|
fi
|
||||||
elif nvm ls default >/dev/null; then
|
elif [ -n "$VERSION" ]; then
|
||||||
nvm use default >/dev/null
|
nvm use "$VERSION" >/dev/null
|
||||||
elif nvm_rc_version >/dev/null 2>&1; then
|
elif nvm_rc_version >/dev/null 2>&1; then
|
||||||
nvm use >/dev/null
|
nvm use >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nvm",
|
"name": "nvm",
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||||
"directories": {
|
"directories": {
|
||||||
"test": "test"
|
"test": "test"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ done
|
|||||||
OUTPUT="$(nvm_resolve_local_alias nonexistent)"
|
OUTPUT="$(nvm_resolve_local_alias nonexistent)"
|
||||||
EXIT_CODE=$(nvm_resolve_local_alias nonexistent > /dev/null 2>&1 ; echo $?)
|
EXIT_CODE=$(nvm_resolve_local_alias nonexistent > /dev/null 2>&1 ; echo $?)
|
||||||
[ "_$EXIT_CODE" = "_2" ] || die "'nvm_resolve_local_alias nonexistent' did not return 2; got $EXIT_CODE"
|
[ "_$EXIT_CODE" = "_2" ] || die "'nvm_resolve_local_alias nonexistent' did not return 2; got $EXIT_CODE"
|
||||||
[ "_$OUTPUT" = "_N/A" ] || die "'nvm_resolve_local_alias nonexistent' did not output N/A; got $OUTPUT"
|
[ "_$OUTPUT" = "_" ] || die "'nvm_resolve_local_alias nonexistent' did not have empty output; got $OUTPUT"
|
||||||
|
|
||||||
STABLE="$(nvm_resolve_local_alias stable)"
|
STABLE="$(nvm_resolve_local_alias stable)"
|
||||||
[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias stable' was not v0.0.10; got $STABLE"
|
[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias stable' was not v0.0.10; got $STABLE"
|
||||||
|
|||||||
@@ -10,7 +10,12 @@ die () { echo $@ ; cleanup ; exit 1; }
|
|||||||
|
|
||||||
return_zero () { return 0; }
|
return_zero () { return 0; }
|
||||||
|
|
||||||
[ "$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"'
|
if nvm_has_system_node || nvm_has_system_iojs; then
|
||||||
|
EXPECTED_SYSTEM_NODE="system"
|
||||||
|
else
|
||||||
|
EXPECTED_SYSTEM_NODE="none"
|
||||||
|
fi
|
||||||
|
[ "_$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "_$EXPECTED_SYSTEM_NODE" ] || die "when deactivated, did not return $EXPECTED_SYSTEM_NODE"
|
||||||
|
|
||||||
rm -rf "$TEST_DIR"
|
rm -rf "$TEST_DIR"
|
||||||
mkdir "$TEST_DIR"
|
mkdir "$TEST_DIR"
|
||||||
|
|||||||
@@ -5,17 +5,23 @@ die () { echo "$@" ; exit 1; }
|
|||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
nvm use 0.10.28
|
nvm use 0.10.28
|
||||||
|
(cd test-npmlink && npm link)
|
||||||
|
|
||||||
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp recursive-blame uglify-js yo"
|
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame test-npmlink uglify-js yo"
|
||||||
|
|
||||||
echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet
|
echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet
|
||||||
|
|
||||||
|
get_packages() {
|
||||||
|
npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs
|
||||||
|
}
|
||||||
|
|
||||||
nvm use 0.10.29
|
nvm use 0.10.29
|
||||||
ORIGINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs)
|
ORIGINAL_PACKAGES=$(get_packages)
|
||||||
|
|
||||||
nvm reinstall-packages 0.10.28
|
nvm reinstall-packages 0.10.28
|
||||||
FINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs)
|
FINAL_PACKAGES=$(get_packages)
|
||||||
|
|
||||||
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
||||||
[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)"
|
[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)"
|
||||||
|
|
||||||
|
[ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink"
|
||||||
|
|||||||
2
test/slow/nvm reinstall-packages/test-npmlink/index.js
Executable file
2
test/slow/nvm reinstall-packages/test-npmlink/index.js
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
console.log('ok')
|
||||||
10
test/slow/nvm reinstall-packages/test-npmlink/package.json
Normal file
10
test/slow/nvm reinstall-packages/test-npmlink/package.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"name": "test-npmlink",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "Stub package for testing npm link",
|
||||||
|
"bin": {
|
||||||
|
"test-npmlink": "index.js"
|
||||||
|
},
|
||||||
|
"author": "hax",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
11
test/sourcing/Sourcing nvm.sh with no default should return 0
Executable file
11
test/sourcing/Sourcing nvm.sh with no default should return 0
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
touch ../../alias/default
|
||||||
|
rm ../../alias/default || die 'removal of default alias failed'
|
||||||
|
nvm_alias default && die '"nvm_alias default" did not fail'
|
||||||
|
|
||||||
|
set -e # necessary to fail internally with a nonzero code
|
||||||
|
|
||||||
|
. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||||
Reference in New Issue
Block a user