104 lines
2.0 KiB
Bash
104 lines
2.0 KiB
Bash
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
|
||
}
|