From 358a3b99b08c5f7b5d8fc47853983250a7e4c1d6 Mon Sep 17 00:00:00 2001 From: Ketan Padegaonkar Date: Fri, 13 Mar 2015 10:00:14 +0530 Subject: [PATCH] Silence the nvm output when installing `nvm install` causes a lot of verbose output when running on a build server. This verbosity is caused by curl's `--progress-bar` argument. This patch adds a `-q` (quiet) argument to `nvm install` in order to silence the output. --- nvm.sh | 70 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/nvm.sh b/nvm.sh index 5b48ca8..7bbb22a 100755 --- a/nvm.sh +++ b/nvm.sh @@ -41,6 +41,7 @@ nvm_download() { elif nvm_has "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/--silent /--quiet /' -e 's/-L //' \ -e 's/-I /--server-response /' \ -e 's/-s /-q /' \ @@ -869,12 +870,20 @@ nvm_install_iojs_binary() { PREFIXED_VERSION="$1" local REINSTALL_PACKAGES_FROM REINSTALL_PACKAGES_FROM="$2" + local QUIET + QUIET="$3" + local PROGRESS_BAR + PROGRESS_BAR="--progress-bar " if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then echo 'nvm_install_iojs_binary requires an iojs-prefixed version.' >&2 return 10 fi + if [ "$QUIET" == '1' ]; then + PROGRESS_BAR="--silent " + fi + local VERSION VERSION="$(nvm_strip_iojs_prefix "$PREFIXED_VERSION")" local VERSION_PATH @@ -896,7 +905,7 @@ nvm_install_iojs_binary() { tmptarball="$tmpdir/iojs-${t}.tar.gz" if ( command mkdir -p "$tmpdir" && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ + nvm_download -L -C - "$PROGRESS_BAR" $url -o "$tmptarball" && \ echo "WARNING: checksums are currently disabled for io.js" >&2 && \ # nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ @@ -920,12 +929,20 @@ nvm_install_node_binary() { VERSION="$1" local REINSTALL_PACKAGES_FROM REINSTALL_PACKAGES_FROM="$2" + local QUIET + QUIET="$3" + local PROGRESS_BAR + PROGRESS_BAR="--progress-bar " if nvm_is_iojs_version "$PREFIXED_VERSION"; then echo 'nvm_install_node_binary does not allow an iojs-prefixed version.' >&2 return 10 fi + if [ "$QUIET" == '1' ]; then + PROGRESS_BAR="--silent " + fi + local VERSION_PATH VERSION_PATH="$(nvm_version_path "$VERSION")" local NVM_OS @@ -950,7 +967,7 @@ nvm_install_node_binary() { tmptarball="$tmpdir/node-${t}.tar.gz" if ( command mkdir -p "$tmpdir" && \ - nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \ + nvm_download -L -C - "$PROGRESS_BAR" $url -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \ command rm -f "$tmptarball" && \ @@ -975,11 +992,29 @@ nvm_install_node_source() { REINSTALL_PACKAGES_FROM="$2" local ADDITIONAL_PARAMETERS ADDITIONAL_PARAMETERS="$3" + local QUIET + QUIET="$4" + local PROGRESS_BAR + PROGRESS_BAR="--progress-bar " + + local REDIRECT_OUTPUT + REDIRECT_OUTPUT="" + local LOGS_DIR + LOGS_DIR="$NVM_DIR/logs" + local LOG_FILE + LOG_FILE="$LOGS_DIR/$VERSION.log" if [ -n "$ADDITIONAL_PARAMETERS" ]; then echo "Additional options while compiling: $ADDITIONAL_PARAMETERS" fi + if [ "$QUIET" == '1' ]; then + PROGRESS_BAR="--silent " + mkdir -p "$LOGS_DIR" + rm -rf "$LOG_FILE" + REDIRECT_OUTPUT=">> $LOG_FILE 2>&1" + fi + local VERSION_PATH VERSION_PATH="$(nvm_version_path "$VERSION")" local NVM_OS @@ -1010,14 +1045,14 @@ nvm_install_node_source() { if ( [ -n "$tarball" ] && \ command mkdir -p "$tmpdir" && \ - nvm_download -L --progress-bar $tarball -o "$tmptarball" && \ + nvm_download -L "$PROGRESS_BAR" $tarball -o "$tmptarball" && \ nvm_checksum "$tmptarball" $sum && \ command tar -xzf "$tmptarball" -C "$tmpdir" && \ cd "$tmpdir/node-$VERSION" && \ - ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS && \ - $make $MAKE_CXX && \ + eval ./configure --prefix="$VERSION_PATH" $ADDITIONAL_PARAMETERS ${REDIRECT_OUTPUT} && \ + eval $make $MAKE_CXX ${REDIRECT_OUTPUT} && \ command rm -f "$VERSION_PATH" 2>/dev/null && \ - $make $MAKE_CXX install + eval $make $MAKE_CXX install ${REDIRECT_OUTPUT} ) then if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then @@ -1067,7 +1102,7 @@ nvm() { echo "Usage:" echo " nvm help Show this message" echo " nvm --version Print out the latest released version of nvm" - echo " nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available" + echo " nvm install [-s] [-q] Download and install a , [-s] from source, [-q] for quiet. Uses .nvmrc if available" echo " nvm uninstall Uninstall a version" echo " nvm use Modify PATH to use . Uses .nvmrc if available" echo " nvm run [] Run with as arguments. Uses .nvmrc if available for " @@ -1097,6 +1132,7 @@ nvm() { "install" | "i" ) local nobinary + local quiet local version_not_provided version_not_provided=0 local provided_version @@ -1120,12 +1156,16 @@ nvm() { shift nobinary=0 - if [ "_$1" = "_-s" ]; then - nobinary=1 - shift - fi + quiet=0 - provided_version="$1" + while [[ "$#" -gt 0 ]]; do + case $1 in + -s) nobinary=1;; + -q) quiet=1;; + *) provided_version="$1" + esac + shift + done if [ -z "$provided_version" ]; then if [ $version_not_provided -ne 1 ]; then @@ -1194,9 +1234,9 @@ nvm() { # skip binary install if "nobinary" option specified. if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then local NVM_INSTALL_SUCCESS - if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM" "$quiet"; then NVM_INSTALL_SUCCESS=true - elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then + elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM" "$quiet"; then NVM_INSTALL_SUCCESS=true fi @@ -1214,7 +1254,7 @@ nvm() { echo "Installing iojs from source is not currently supported" >&2 return 105 else - nvm_install_node_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" + nvm_install_node_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS" "$quiet" fi ;; "uninstall" )