|
|
assert_ok() { |
|
|
local FUNCTION=$1 |
|
|
shift |
|
|
|
|
|
$($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have succeeded, but failed' |
|
|
} |
|
|
|
|
|
assert_not_ok() { |
|
|
local FUNCTION=$1 |
|
|
shift |
|
|
|
|
|
! $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have failed, but succeeded' |
|
|
} |
|
|
|
|
|
strip_colors() { |
|
|
while read -r line; do |
|
|
echo "$line" | LC_ALL=C command sed 's/\[[ -?]*[@-~]//g' |
|
|
done |
|
|
} |
|
|
|
|
|
make_echo() { |
|
|
echo "#!/bin/sh" > "$1" |
|
|
echo "echo \"${2}\"" > "$1" |
|
|
chmod a+x "$1" |
|
|
} |
|
|
|
|
|
make_fake_node() { |
|
|
local VERSION |
|
|
VERSION="${1-}" |
|
|
[ -n "${VERSION}" ] || return 1 |
|
|
|
|
|
local FORMATTED_VERSION |
|
|
FORMATTED_VERSION="$(nvm_format_version "${VERSION}")" |
|
|
|
|
|
local BIN_PATH |
|
|
BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin" |
|
|
[ "${BIN_PATH}" != "/bin" ] || { |
|
|
echo >&2 'nvm_version_path was empty' |
|
|
return 5 |
|
|
} |
|
|
|
|
|
mkdir -p "${BIN_PATH}" || { |
|
|
echo >&2 'unable to make bin dir' |
|
|
return 2 |
|
|
} |
|
|
|
|
|
make_echo "${BIN_PATH}/node" "${VERSION}" || { |
|
|
echo >&2 'unable to make fake node bin' |
|
|
return 3 |
|
|
} |
|
|
|
|
|
nvm_is_version_installed "${FORMATTED_VERSION}" || { |
|
|
echo >&2 'fake node is not installed' |
|
|
return 4 |
|
|
} |
|
|
} |
|
|
|
|
|
make_fake_iojs() { |
|
|
local VERSION |
|
|
VERSION="${1-}" |
|
|
[ -n "${VERSION}" ] || return 1 |
|
|
|
|
|
local FORMATTED_VERSION |
|
|
FORMATTED_VERSION="$(nvm_format_version "iojs-${VERSION}")" |
|
|
|
|
|
local BIN_PATH |
|
|
BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin" |
|
|
[ "${BIN_PATH}" != "/bin" ] || { |
|
|
echo >&2 'nvm_version_path was empty' |
|
|
return 5 |
|
|
} |
|
|
|
|
|
mkdir -p "${BIN_PATH}" || { |
|
|
echo >&2 'unable to make bin dir' |
|
|
return 2 |
|
|
} |
|
|
|
|
|
make_echo "${BIN_PATH}/node" "${VERSION}" || { |
|
|
echo >&2 'unable to make fake node bin' |
|
|
return 3 |
|
|
} |
|
|
make_echo "${BIN_PATH}/iojs" "${VERSION}" || { |
|
|
echo >&2 'unable to make fake iojs bin' |
|
|
return 3 |
|
|
} |
|
|
|
|
|
nvm_is_version_installed "${FORMATTED_VERSION}" || { |
|
|
echo >&2 'fake iojs is not installed' |
|
|
return 4 |
|
|
} |
|
|
} |
|
|
|
|
|
watch() { |
|
|
$@ & |
|
|
local JOB |
|
|
JOB=$! |
|
|
while true; do sleep 15; >&2 echo '* ping *'; done & |
|
|
wait $JOB; |
|
|
local EXIT_CODE |
|
|
EXIT_CODE=$? |
|
|
kill %2; |
|
|
return $EXIT_CODE |
|
|
}
|
|
|
|