#!/bin/sh die () { echo "$@" ; exit 1; } : nvm.sh \. ../../../nvm.sh \. ../../common.sh unset NVM_ONLY NVM_ONLY_SELECTED NVM_NO_LTS_STATUS=1 export NVM_NO_LTS_STATUS check () { EXPECTED="$1" shift try nvm_resolve_only "$@" [ "_${CAPTURED_EXIT_CODE}" = '_0' ] || die "nvm_resolve_only $* (NVM_ONLY=${NVM_ONLY-}) exited ${CAPTURED_EXIT_CODE}" [ "_${CAPTURED_STDOUT}" = "_${EXPECTED}" ] || die "nvm_resolve_only $* (NVM_ONLY=${NVM_ONLY-}) printed >${CAPTURED_STDOUT}<, expected >${EXPECTED}<" } check_err () { EXPECTED="$1" shift try_err nvm_resolve_only "$@" [ "_${CAPTURED_EXIT_CODE}" = "_${EXPECTED_CODE:-55}" ] || die "nvm_resolve_only $* (NVM_ONLY=${NVM_ONLY-}) exited ${CAPTURED_EXIT_CODE}, expected ${EXPECTED_CODE:-55}" [ "_${CAPTURED_STDERR}" = "_${EXPECTED}" ] || die "nvm_resolve_only $* (NVM_ONLY=${NVM_ONLY-}) printed >${CAPTURED_STDERR}<, expected >${EXPECTED}<" } check 'lts,non-lts,iojs' 0 '' '' check 'alpha,iojs' 1 'iojs,alpha' '' check 'lts,non-lts' 0 '' '*' check 'lts,non-lts' 1 'alpha,lts' 'argon' check_err '`--only=alpha,iojs` excludes LTS versions, so it cannot be combined with an LTS selection like `--lts`.' 1 'alpha,iojs' '*' check_err '`--only` may only be provided once.' 2 'alpha' '' check_err 'Invalid `--only` value "": it must be a comma-separated list of any of: alpha, lts, non-lts, iojs' 1 '' '' check_err 'Invalid `--only` value ",alpha": it must be a comma-separated list of any of: alpha, lts, non-lts, iojs' 1 ',alpha' '' NVM_ONLY='iojs,alpha' check 'alpha,iojs' 0 '' '' check 'non-lts' 1 'non-lts' '' check 'lts,non-lts' 0 '' '*' NVM_ONLY='alpha,bogus' check_err 'Invalid `$NVM_ONLY` value "alpha,bogus": it must be a comma-separated list of any of: alpha, lts, non-lts, iojs' 0 '' '' check 'lts' 1 'lts' '' NVM_ONLY='lts' NVM_ONLY_SELECTED='alpha' check 'alpha' 0 '' '' check 'non-lts' 1 'non-lts' '' unset NVM_ONLY NVM_ONLY_SELECTED NVM_NO_LTS_STATUS # selecting only one of lts and non-lts needs recorded LTS status; an LTS selection does not NVM_INDEX_NO_FETCH=1 export NVM_INDEX_NO_FETCH nvm_download() { return 1; } TMP_DIR="$(mktemp -d)" ORIG_NVM_DIR="${NVM_DIR}" NVM_DIR="${TMP_DIR}" EXPECTED_CODE=3 check_err 'The LTS status of installed versions is not recorded yet; run `nvm ls-remote` to record it.' 1 'lts' '' unset EXPECTED_CODE check 'lts,non-lts' 0 '' '*' NVM_DIR="${ORIG_NVM_DIR}" rm -rf "${TMP_DIR}" unset NVM_INDEX_NO_FETCH