51 lines
1005 B
Plaintext
51 lines
1005 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
set -e
|
||
|
|
||
|
cleanup() {
|
||
|
nvm cache clear
|
||
|
nvm deactivate
|
||
|
rm -rf "${NVM_DIR}"/v*
|
||
|
nvm unalias default
|
||
|
}
|
||
|
|
||
|
die() {
|
||
|
echo "$@"
|
||
|
cleanup || true
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
\. ../../nvm.sh
|
||
|
|
||
|
if [ -z "${BASH-}" ]; then
|
||
|
echo "This test only applies to Bash; skipping"
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
cleanup || true
|
||
|
trap 'echo "==> EXIT signal received (status: $?)"; cleanup' EXIT
|
||
|
|
||
|
# shellcheck disable=SC3047
|
||
|
trap 'echo "==> ERR signal received"; exit 1' ERR
|
||
|
# shellcheck disable=SC3041
|
||
|
set -E
|
||
|
|
||
|
# shellcheck disable=SC3045,SC3047
|
||
|
ERR_TRAP_EXPECTED="$(trap -p ERR)"
|
||
|
|
||
|
# Adding ` || die 'install failed'` implicitly disables error handling and
|
||
|
# prevents ERR trap execution, so for the purposes of this test, `nvm install`
|
||
|
# can't be part of another command or statement
|
||
|
nvm install node
|
||
|
|
||
|
case "$-" in
|
||
|
*E*)
|
||
|
# shellcheck disable=SC3045,SC3047
|
||
|
[ "$(trap -p ERR)" = "$ERR_TRAP_EXPECTED" ] ||
|
||
|
die "ERR trap not restored after \"nvm install $VERSION\""
|
||
|
;;
|
||
|
*)
|
||
|
die "errtrace not restored after \"nvm install $VERSION\""
|
||
|
;;
|
||
|
esac
|