[New] Supercharge `nvm debug` output
Try to get shell version, OS and its version, curl/wget/git version.
parent
f344d0694b
commit
7b253c8c0a
42
nvm.sh
42
nvm.sh
|
@ -49,6 +49,24 @@ nvm_is_alias() {
|
||||||
\alias "${1-}" > /dev/null 2>&1
|
\alias "${1-}" > /dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nvm_command_info() {
|
||||||
|
local COMMAND
|
||||||
|
local INFO
|
||||||
|
COMMAND="${1}"
|
||||||
|
if type "${COMMAND}" | command grep -q hashed; then
|
||||||
|
INFO="$(type "${COMMAND}" | command sed -E 's/\(|)//g' | command awk '{print $4}')"
|
||||||
|
elif type "${COMMAND}" | command grep -q aliased; then
|
||||||
|
INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))"
|
||||||
|
elif type "${COMMAND}" | command grep -q "^${COMMAND} is an alias for"; then
|
||||||
|
INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | command sed 's/^\ *//g'))"
|
||||||
|
elif type "${COMMAND}" | command grep -q "^${COMMAND} is \/"; then
|
||||||
|
INFO="$(type "${COMMAND}" | command awk '{print $3}')"
|
||||||
|
else
|
||||||
|
INFO="$(type "${COMMAND}")"
|
||||||
|
fi
|
||||||
|
nvm_echo "${INFO}"
|
||||||
|
}
|
||||||
|
|
||||||
nvm_has_colors() {
|
nvm_has_colors() {
|
||||||
local NVM_COLORS
|
local NVM_COLORS
|
||||||
if nvm_has tput; then
|
if nvm_has tput; then
|
||||||
|
@ -2249,6 +2267,28 @@ nvm() {
|
||||||
nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'"
|
nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'"
|
||||||
nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'"
|
nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'"
|
||||||
nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'"
|
nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'"
|
||||||
|
nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'"
|
||||||
|
nvm_err "uname -a: '$(uname -a | awk '{$2=""; print}' | xargs)'"
|
||||||
|
if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then
|
||||||
|
nvm_err "OS version: $(sw_vers | command awk '{print $2}' | command xargs)"
|
||||||
|
elif [ -r "/etc/issue" ]; then
|
||||||
|
nvm_err "OS version: $(command head -n 1 /etc/issue | command sed 's/\\.//g')"
|
||||||
|
fi
|
||||||
|
if nvm_has "curl"; then
|
||||||
|
nvm_err "curl: $(nvm_command_info curl), $(command curl -V | command head -n 1)"
|
||||||
|
else
|
||||||
|
nvm_err "curl: not found"
|
||||||
|
fi
|
||||||
|
if nvm_has "wget"; then
|
||||||
|
nvm_err "wget: $(nvm_command_info wget), $(command wget -V | command head -n 1)"
|
||||||
|
else
|
||||||
|
nvm_err "wget: not found"
|
||||||
|
fi
|
||||||
|
if nvm_has "git"; then
|
||||||
|
nvm_err "git: $(nvm_command_info git), $(command git --version)"
|
||||||
|
else
|
||||||
|
nvm_err "git: not found"
|
||||||
|
fi
|
||||||
local NVM_DEBUG_OUTPUT
|
local NVM_DEBUG_OUTPUT
|
||||||
for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g'
|
for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g'
|
||||||
do
|
do
|
||||||
|
@ -3204,7 +3244,7 @@ nvm() {
|
||||||
nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \
|
nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \
|
||||||
nvm_sanitize_path nvm_has_colors nvm_process_parameters \
|
nvm_sanitize_path nvm_has_colors nvm_process_parameters \
|
||||||
node_version_has_solaris_binary iojs_version_has_solaris_binary \
|
node_version_has_solaris_binary iojs_version_has_solaris_binary \
|
||||||
nvm_curl_libz_support \
|
nvm_curl_libz_support nvm_command_info \
|
||||||
> /dev/null 2>&1
|
> /dev/null 2>&1
|
||||||
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \
|
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \
|
||||||
NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \
|
NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
unalias wget
|
||||||
|
unset -f wget
|
||||||
|
unset WGET_EXPECTED_INFO WGET_COMMAND_INFO
|
||||||
|
}
|
||||||
|
|
||||||
|
die() { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
|
||||||
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
|
|
||||||
|
# 1. test wget command
|
||||||
|
WGET_COMMAND_INFO="$(nvm_command_info wget)"
|
||||||
|
WGET_EXPECTED_INFO="$(which wget)"
|
||||||
|
[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 1), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'"
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
|
||||||
|
# 2. test aliased wget
|
||||||
|
shopt -s expand_aliases
|
||||||
|
# enable expand_aliases to make alias working in interactive shell
|
||||||
|
alias wget="wget -V"
|
||||||
|
WGET_COMMAND_INFO="$(nvm_command_info wget)"
|
||||||
|
WGET_EXPECTED_INFO="$(which wget) (wget -V)"
|
||||||
|
[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 2), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'"
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
|
||||||
|
# 3. test wget function
|
||||||
|
wget() {
|
||||||
|
echo "wget function"
|
||||||
|
}
|
||||||
|
|
||||||
|
WGET_COMMAND_INFO="$(nvm_command_info wget)"
|
||||||
|
WGET_EXPECTED_INFO="$(type wget)"
|
||||||
|
[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 3), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'"
|
||||||
|
|
||||||
|
cleanup
|
Loading…
Reference in New Issue