From 8d869f02eefd06601325e719de3a3cabd7351336 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Tue, 28 Mar 2017 22:42:46 +0800 Subject: [PATCH] [New] Add nvm_sed() to replace `command sed` --- nvm.sh | 52 ++++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/nvm.sh b/nvm.sh index 28f7132..432eabe 100644 --- a/nvm.sh +++ b/nvm.sh @@ -35,6 +35,10 @@ nvm_grep() { GREP_OPTIONS='' command grep "$@" } +nvm_sed() { + command sed "$@" +} + nvm_has() { type "${1-}" > /dev/null 2>&1 } @@ -54,11 +58,11 @@ nvm_command_info() { local INFO COMMAND="${1}" 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 - 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 - 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 INFO="$(type "${COMMAND}" | command awk '{print $3}')" else @@ -109,7 +113,7 @@ nvm_download() { curl "${CURL_COMPRESSED_FLAG:-}" -q "$@" elif nvm_has "wget"; then # 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/-L //' \ -e 's/-I /--server-response /' \ @@ -220,7 +224,7 @@ nvm_rc_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() { @@ -427,7 +431,7 @@ nvm_remote_versions() { VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_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 nvm_echo 'N/A' @@ -464,7 +468,7 @@ nvm_normalize_version() { nvm_ensure_version_prefix() { 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 nvm_add_iojs_prefix "${NVM_VERSION}" else @@ -494,7 +498,7 @@ nvm_num_version_groups() { return fi 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 NVM_NUM_GROUPS=".${NVM_NUM_DOTS}" # add extra dot, since it's (n - 1) dots at this point nvm_echo "${#NVM_NUM_GROUPS}" @@ -505,7 +509,7 @@ nvm_strip_path() { nvm_err '${NVM_DIR} not set!' return 1 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" \ @@ -921,11 +925,11 @@ nvm_ls() { PATTERN='v' SEARCH_PATTERN='.*' else - SEARCH_PATTERN="$(echo "${PATTERN}" | command sed "s#\.#\\\.#g;")" + SEARCH_PATTERN="$(echo "${PATTERN}" | nvm_sed "s#\.#\\\.#g;")" fi 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}*" \ - | command sed -e " + | nvm_sed -e " s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#; s#^${NVM_DIR}/##; \#^[^v]# d; @@ -936,7 +940,7 @@ nvm_ls() { " \ -e "s#^\([^/]\{1,\}\)/\(.*\)\$#\2.\1#;" \ | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ - | command sed " + | nvm_sed " s#\(.*\)\.\([^\.]\{1,\}\)\$#\2-\1#; s#^${NVM_NODE_PREFIX}-##; " \ @@ -1043,7 +1047,7 @@ nvm_ls_remote_index_tab() { fi local VERSION_LIST VERSION_LIST="$(nvm_download -L -s "${MIRROR}/index.tab" -o - \ - | command sed " + | nvm_sed " 1d; s/^/${PREFIX}/; " \ @@ -1276,9 +1280,9 @@ nvm_print_versions() { local LTS_LENGTH local LTS_FORMAT 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 sed '1!G;h;$!d' \ + | nvm_sed '1!G;h;$!d' \ | while read -r VERSION_LINE; do VERSION="${VERSION_LINE%% *}" LTS="${VERSION_LINE#* }" @@ -1384,7 +1388,7 @@ nvm_print_implicit_alias() { NVM_IOJS_VERSION="$($NVM_COMMAND)" &&: EXIT_CODE="$?" 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 if [ "$ZSH_HAS_SHWORDSPLIT_UNSET" -eq 1 ] && nvm_has "unsetopt"; then @@ -1984,16 +1988,16 @@ nvm_npm_global_modules() { local VERSION VERSION="$1" 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 - 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 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 - LINKS="$(nvm_echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')" + LINKS="$(nvm_echo "$NPMLIST" | nvm_sed -n 's/.* -> \(.*\)/\1/ p')" nvm_echo "$INSTALLS //// $LINKS" } @@ -2107,10 +2111,10 @@ nvm_sanitize_path() { local SANITIZED_PATH SANITIZED_PATH="${1-}" 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 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 nvm_echo "$SANITIZED_PATH" } @@ -2285,7 +2289,7 @@ nvm() { 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')" + nvm_err "OS version: $(command head -n 1 /etc/issue | nvm_sed 's/\\.//g')" fi if nvm_has "curl"; then 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_download nvm_get_latest nvm_has \ 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_has_solaris_binary nvm_is_merged_node_version \ nvm_is_natural_num nvm_is_version_installed \