Create `nvm_ensure_version_installed`
parent
a0d04d0b6b
commit
0d9329435c
18
nvm.sh
18
nvm.sh
|
@ -189,6 +189,24 @@ nvm_version_path() {
|
|||
fi
|
||||
}
|
||||
|
||||
nvm_ensure_version_installed() {
|
||||
local PROVIDED_VERSION
|
||||
PROVIDED_VERSION="$1"
|
||||
local LOCAL_VERSION
|
||||
LOCAL_VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
local NVM_VERSION_DIR
|
||||
NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")"
|
||||
if [ ! -d "$NVM_VERSION_DIR" ]; then
|
||||
VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2
|
||||
else
|
||||
echo "N/A: version \"$(nvm_ensure_version_prefix "$PROVIDED_VERSION")\" is not yet installed" >&2
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Expand a version using the version cache
|
||||
nvm_version() {
|
||||
local PATTERN
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
cleanup () {
|
||||
rm -rf "$(nvm_version_path v0.1.2)"
|
||||
}
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
mkdir -p "$(nvm_version_path v0.1.2)"
|
||||
|
||||
OUTPUT="$(nvm_ensure_version_installed foo 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
EXPECTED_OUTPUT='N/A: version "foo" is not yet installed'
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed foo' to give $EXPECTED_OUTPUT, got $OUTPUT"
|
||||
[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed foo' to exit with 1, got $EXIT_CODE"
|
||||
|
||||
OUTPUT="$(nvm_ensure_version_installed 0.1)"
|
||||
EXIT_CODE=$?
|
||||
[ "_$OUTPUT" = "_" ] || die "expected 'nvm_ensure_version_installed 0.1' to have no output, got $OUTPUT"
|
||||
[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed 0.1' to exit with 0, got $EXIT_CODE"
|
||||
|
||||
cleanup
|
Loading…
Reference in New Issue