Some more compatibility with zsh

Prepend a v for version numbers if its not already there
This commit is contained in:
Koen Punt 2012-10-21 23:46:27 +02:00
parent 8cc5ea1ba8
commit 36c3c8fbc5

20
nvm.sh
View File

@ -36,6 +36,8 @@ nvm_version()
# The default version is the current one
if [ ! "$PATTERN" ]; then
PATTERN='current'
else
PATTERN=`nvm_format_version $PATTERN`
fi
VERSION=`nvm_ls $PATTERN | tail -n1`
@ -62,6 +64,11 @@ nvm_normalize_version()
echo "$1" | sed -e 's/^v//' | awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }';
}
nvm_format_version()
{
echo "$1" | sed -e 's/^\([0-9]\)/v\1/g'
}
nvm_binary_available()
{
# binaries started with node 0.8.6
@ -87,7 +94,7 @@ nvm_ls()
return
fi
# If it looks like an explicit version, don't do anything funny
if [[ "$PATTERN" == v?*.?*.?* ]]; then
if echo "$PATTERN" | grep 'v.*\..*\..*' ; then
VERSIONS="$PATTERN"
else
VERSIONS=`(cd $NVM_DIR; \ls -d v${PATTERN}* 2>/dev/null) | sort -t. -k 1.2,1n -k 2,2n -k 3,3n`
@ -104,9 +111,7 @@ nvm_ls_remote()
{
PATTERN=$1
if [ "$PATTERN" ]; then
if echo "${PATTERN}" | grep -v '^v' ; then
PATTERN=v$PATTERN
fi
PATTERN=`nvm_format_version "$PATTERN"`
else
PATTERN=".*"
fi
@ -254,11 +259,12 @@ nvm()
;;
"uninstall" )
[ $# -ne 2 ] && nvm help && return
if [[ $2 == `nvm_version` ]]; then
echo "nvm: Cannot uninstall currently-active node version, $2."
PATTERN=`nvm_format_version $2`
if [[ $PATTERN == `nvm_version` ]]; then
echo "nvm: Cannot uninstall currently-active node version, $PATTERN."
return
fi
VERSION=`nvm_version $2`
VERSION=`nvm_version $PATTERN`
if [ ! -d $NVM_DIR/$VERSION ]; then
echo "$VERSION version is not installed yet... installing"
nvm install $VERSION