HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/.nvm/test/installation_node/install on bash with ERR trap and set -E
#!/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