mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-10 22:31:51 +00:00
[New] Add nvm_sed() to replace command sed
This commit is contained in:
parent
b9f9977cdd
commit
8d869f02ee
52
nvm.sh
52
nvm.sh
@ -35,6 +35,10 @@ nvm_grep() {
|
|||||||
GREP_OPTIONS='' command grep "$@"
|
GREP_OPTIONS='' command grep "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nvm_sed() {
|
||||||
|
command sed "$@"
|
||||||
|
}
|
||||||
|
|
||||||
nvm_has() {
|
nvm_has() {
|
||||||
type "${1-}" > /dev/null 2>&1
|
type "${1-}" > /dev/null 2>&1
|
||||||
}
|
}
|
||||||
@ -54,11 +58,11 @@ nvm_command_info() {
|
|||||||
local INFO
|
local INFO
|
||||||
COMMAND="${1}"
|
COMMAND="${1}"
|
||||||
if type "${COMMAND}" | command grep -q hashed; then
|
if type "${COMMAND}" | command grep -q hashed; then
|
||||||
INFO="$(type "${COMMAND}" | command sed -E 's/\(|)//g' | command awk '{print $4}')"
|
INFO="$(type "${COMMAND}" | nvm_sed -E 's/\(|)//g' | command awk '{print $4}')"
|
||||||
elif type "${COMMAND}" | command grep -q aliased; then
|
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" ))"
|
INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | nvm_sed -e 's/^\ *//g' -Ee "s/\`|'//g" ))"
|
||||||
elif type "${COMMAND}" | command grep -q "^${COMMAND} is an alias for"; then
|
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'))"
|
INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | nvm_sed 's/^\ *//g'))"
|
||||||
elif type "${COMMAND}" | command grep -q "^${COMMAND} is \/"; then
|
elif type "${COMMAND}" | command grep -q "^${COMMAND} is \/"; then
|
||||||
INFO="$(type "${COMMAND}" | command awk '{print $3}')"
|
INFO="$(type "${COMMAND}" | command awk '{print $3}')"
|
||||||
else
|
else
|
||||||
@ -109,7 +113,7 @@ nvm_download() {
|
|||||||
curl "${CURL_COMPRESSED_FLAG:-}" -q "$@"
|
curl "${CURL_COMPRESSED_FLAG:-}" -q "$@"
|
||||||
elif nvm_has "wget"; then
|
elif nvm_has "wget"; then
|
||||||
# Emulate curl with wget
|
# Emulate curl with wget
|
||||||
ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \
|
ARGS=$(nvm_echo "$@" | nvm_sed -e 's/--progress-bar /--progress=bar /' \
|
||||||
-e 's/--compressed //' \
|
-e 's/--compressed //' \
|
||||||
-e 's/-L //' \
|
-e 's/-L //' \
|
||||||
-e 's/-I /--server-response /' \
|
-e 's/-I /--server-response /' \
|
||||||
@ -220,7 +224,7 @@ nvm_rc_version() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_clang_version() {
|
nvm_clang_version() {
|
||||||
clang --version | command awk '{ if ($2 == "version") print $3; else if ($3 == "version") print $4 }' | command sed 's/-.*$//g'
|
clang --version | command awk '{ if ($2 == "version") print $3; else if ($3 == "version") print $4 }' | nvm_sed 's/-.*$//g'
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_version_greater() {
|
nvm_version_greater() {
|
||||||
@ -427,7 +431,7 @@ nvm_remote_versions() {
|
|||||||
|
|
||||||
VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_OUTPUT}
|
VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_OUTPUT}
|
||||||
${NVM_LS_REMOTE_IOJS_OUTPUT}
|
${NVM_LS_REMOTE_IOJS_OUTPUT}
|
||||||
${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^$/d')"
|
${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | nvm_sed '/^$/d')"
|
||||||
|
|
||||||
if [ -z "${VERSIONS}" ]; then
|
if [ -z "${VERSIONS}" ]; then
|
||||||
nvm_echo 'N/A'
|
nvm_echo 'N/A'
|
||||||
@ -464,7 +468,7 @@ nvm_normalize_version() {
|
|||||||
|
|
||||||
nvm_ensure_version_prefix() {
|
nvm_ensure_version_prefix() {
|
||||||
local NVM_VERSION
|
local NVM_VERSION
|
||||||
NVM_VERSION="$(nvm_strip_iojs_prefix "${1-}" | command sed -e 's/^\([0-9]\)/v\1/g')"
|
NVM_VERSION="$(nvm_strip_iojs_prefix "${1-}" | nvm_sed -e 's/^\([0-9]\)/v\1/g')"
|
||||||
if nvm_is_iojs_version "${1-}"; then
|
if nvm_is_iojs_version "${1-}"; then
|
||||||
nvm_add_iojs_prefix "${NVM_VERSION}"
|
nvm_add_iojs_prefix "${NVM_VERSION}"
|
||||||
else
|
else
|
||||||
@ -494,7 +498,7 @@ nvm_num_version_groups() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
local NVM_NUM_DOTS
|
local NVM_NUM_DOTS
|
||||||
NVM_NUM_DOTS=$(nvm_echo "${VERSION}" | command sed -e 's/[^\.]//g')
|
NVM_NUM_DOTS=$(nvm_echo "${VERSION}" | nvm_sed -e 's/[^\.]//g')
|
||||||
local NVM_NUM_GROUPS
|
local NVM_NUM_GROUPS
|
||||||
NVM_NUM_GROUPS=".${NVM_NUM_DOTS}" # add extra dot, since it's (n - 1) dots at this point
|
NVM_NUM_GROUPS=".${NVM_NUM_DOTS}" # add extra dot, since it's (n - 1) dots at this point
|
||||||
nvm_echo "${#NVM_NUM_GROUPS}"
|
nvm_echo "${#NVM_NUM_GROUPS}"
|
||||||
@ -505,7 +509,7 @@ nvm_strip_path() {
|
|||||||
nvm_err '${NVM_DIR} not set!'
|
nvm_err '${NVM_DIR} not set!'
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
nvm_echo "${1-}" | command sed \
|
nvm_echo "${1-}" | nvm_sed \
|
||||||
-e "s#${NVM_DIR}/[^/]*${2-}[^:]*:##g" \
|
-e "s#${NVM_DIR}/[^/]*${2-}[^:]*:##g" \
|
||||||
-e "s#:${NVM_DIR}/[^/]*${2-}[^:]*##g" \
|
-e "s#:${NVM_DIR}/[^/]*${2-}[^:]*##g" \
|
||||||
-e "s#${NVM_DIR}/[^/]*${2-}[^:]*##g" \
|
-e "s#${NVM_DIR}/[^/]*${2-}[^:]*##g" \
|
||||||
@ -921,11 +925,11 @@ nvm_ls() {
|
|||||||
PATTERN='v'
|
PATTERN='v'
|
||||||
SEARCH_PATTERN='.*'
|
SEARCH_PATTERN='.*'
|
||||||
else
|
else
|
||||||
SEARCH_PATTERN="$(echo "${PATTERN}" | command sed "s#\.#\\\.#g;")"
|
SEARCH_PATTERN="$(echo "${PATTERN}" | nvm_sed "s#\.#\\\.#g;")"
|
||||||
fi
|
fi
|
||||||
if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then
|
if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then
|
||||||
VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \
|
VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \
|
||||||
| command sed -e "
|
| nvm_sed -e "
|
||||||
s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#;
|
s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#;
|
||||||
s#^${NVM_DIR}/##;
|
s#^${NVM_DIR}/##;
|
||||||
\#^[^v]# d;
|
\#^[^v]# d;
|
||||||
@ -936,7 +940,7 @@ nvm_ls() {
|
|||||||
" \
|
" \
|
||||||
-e "s#^\([^/]\{1,\}\)/\(.*\)\$#\2.\1#;" \
|
-e "s#^\([^/]\{1,\}\)/\(.*\)\$#\2.\1#;" \
|
||||||
| command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \
|
| command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \
|
||||||
| command sed "
|
| nvm_sed "
|
||||||
s#\(.*\)\.\([^\.]\{1,\}\)\$#\2-\1#;
|
s#\(.*\)\.\([^\.]\{1,\}\)\$#\2-\1#;
|
||||||
s#^${NVM_NODE_PREFIX}-##;
|
s#^${NVM_NODE_PREFIX}-##;
|
||||||
" \
|
" \
|
||||||
@ -1043,7 +1047,7 @@ nvm_ls_remote_index_tab() {
|
|||||||
fi
|
fi
|
||||||
local VERSION_LIST
|
local VERSION_LIST
|
||||||
VERSION_LIST="$(nvm_download -L -s "${MIRROR}/index.tab" -o - \
|
VERSION_LIST="$(nvm_download -L -s "${MIRROR}/index.tab" -o - \
|
||||||
| command sed "
|
| nvm_sed "
|
||||||
1d;
|
1d;
|
||||||
s/^/${PREFIX}/;
|
s/^/${PREFIX}/;
|
||||||
" \
|
" \
|
||||||
@ -1276,9 +1280,9 @@ nvm_print_versions() {
|
|||||||
local LTS_LENGTH
|
local LTS_LENGTH
|
||||||
local LTS_FORMAT
|
local LTS_FORMAT
|
||||||
nvm_echo "${1-}" \
|
nvm_echo "${1-}" \
|
||||||
| command sed '1!G;h;$!d' \
|
| nvm_sed '1!G;h;$!d' \
|
||||||
| command awk '{ if ($2 && a[$2]++) { print $1, "(LTS: " $2 ")" } else if ($2) { print $1, "(Latest LTS: " $2 ")" } else { print $0 } }' \
|
| command awk '{ if ($2 && a[$2]++) { print $1, "(LTS: " $2 ")" } else if ($2) { print $1, "(Latest LTS: " $2 ")" } else { print $0 } }' \
|
||||||
| command sed '1!G;h;$!d' \
|
| nvm_sed '1!G;h;$!d' \
|
||||||
| while read -r VERSION_LINE; do
|
| while read -r VERSION_LINE; do
|
||||||
VERSION="${VERSION_LINE%% *}"
|
VERSION="${VERSION_LINE%% *}"
|
||||||
LTS="${VERSION_LINE#* }"
|
LTS="${VERSION_LINE#* }"
|
||||||
@ -1384,7 +1388,7 @@ nvm_print_implicit_alias() {
|
|||||||
NVM_IOJS_VERSION="$($NVM_COMMAND)" &&:
|
NVM_IOJS_VERSION="$($NVM_COMMAND)" &&:
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$?"
|
||||||
if [ "_$EXIT_CODE" = "_0" ]; then
|
if [ "_$EXIT_CODE" = "_0" ]; then
|
||||||
NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)"
|
NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | nvm_sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then
|
if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then
|
||||||
@ -1984,16 +1988,16 @@ nvm_npm_global_modules() {
|
|||||||
local VERSION
|
local VERSION
|
||||||
VERSION="$1"
|
VERSION="$1"
|
||||||
if [ "_$VERSION" = "_system" ]; then
|
if [ "_$VERSION" = "_system" ]; then
|
||||||
NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d)
|
NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | nvm_sed 1,1d)
|
||||||
else
|
else
|
||||||
NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command sed 1,1d)
|
NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | nvm_sed 1,1d)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local INSTALLS
|
local INSTALLS
|
||||||
INSTALLS=$(nvm_echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs)
|
INSTALLS=$(nvm_echo "$NPMLIST" | nvm_sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs)
|
||||||
|
|
||||||
local LINKS
|
local LINKS
|
||||||
LINKS="$(nvm_echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')"
|
LINKS="$(nvm_echo "$NPMLIST" | nvm_sed -n 's/.* -> \(.*\)/\1/ p')"
|
||||||
|
|
||||||
nvm_echo "$INSTALLS //// $LINKS"
|
nvm_echo "$INSTALLS //// $LINKS"
|
||||||
}
|
}
|
||||||
@ -2107,10 +2111,10 @@ nvm_sanitize_path() {
|
|||||||
local SANITIZED_PATH
|
local SANITIZED_PATH
|
||||||
SANITIZED_PATH="${1-}"
|
SANITIZED_PATH="${1-}"
|
||||||
if [ "_$SANITIZED_PATH" != "_$NVM_DIR" ]; then
|
if [ "_$SANITIZED_PATH" != "_$NVM_DIR" ]; then
|
||||||
SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed -e "s#$NVM_DIR#\$NVM_DIR#g")"
|
SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | nvm_sed -e "s#$NVM_DIR#\$NVM_DIR#g")"
|
||||||
fi
|
fi
|
||||||
if [ "_$SANITIZED_PATH" != "_$HOME" ]; then
|
if [ "_$SANITIZED_PATH" != "_$HOME" ]; then
|
||||||
SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | command sed -e "s#$HOME#\$HOME#g")"
|
SANITIZED_PATH="$(nvm_echo "$SANITIZED_PATH" | nvm_sed -e "s#$HOME#\$HOME#g")"
|
||||||
fi
|
fi
|
||||||
nvm_echo "$SANITIZED_PATH"
|
nvm_echo "$SANITIZED_PATH"
|
||||||
}
|
}
|
||||||
@ -2285,7 +2289,7 @@ nvm() {
|
|||||||
if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then
|
if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then
|
||||||
nvm_err "OS version: $(sw_vers | command awk '{print $2}' | command xargs)"
|
nvm_err "OS version: $(sw_vers | command awk '{print $2}' | command xargs)"
|
||||||
elif [ -r "/etc/issue" ]; then
|
elif [ -r "/etc/issue" ]; then
|
||||||
nvm_err "OS version: $(command head -n 1 /etc/issue | command sed 's/\\.//g')"
|
nvm_err "OS version: $(command head -n 1 /etc/issue | nvm_sed 's/\\.//g')"
|
||||||
fi
|
fi
|
||||||
if nvm_has "curl"; then
|
if nvm_has "curl"; then
|
||||||
nvm_err "curl: $(nvm_command_info curl), $(command curl -V | command head -n 1)"
|
nvm_err "curl: $(nvm_command_info curl), $(command curl -V | command head -n 1)"
|
||||||
@ -3251,7 +3255,7 @@ nvm() {
|
|||||||
nvm_has_system_node nvm_has_system_iojs \
|
nvm_has_system_node nvm_has_system_iojs \
|
||||||
nvm_download nvm_get_latest nvm_has \
|
nvm_download nvm_get_latest nvm_has \
|
||||||
nvm_supports_source_options nvm_auto nvm_supports_xz \
|
nvm_supports_source_options nvm_auto nvm_supports_xz \
|
||||||
nvm_echo nvm_err nvm_grep nvm_cd \
|
nvm_echo nvm_err nvm_grep nvm_cd nvm_sed \
|
||||||
nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \
|
nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \
|
||||||
nvm_has_solaris_binary nvm_is_merged_node_version \
|
nvm_has_solaris_binary nvm_is_merged_node_version \
|
||||||
nvm_is_natural_num nvm_is_version_installed \
|
nvm_is_natural_num nvm_is_version_installed \
|
||||||
|
Loading…
Reference in New Issue
Block a user