From 2a354a804868f36dafd645429675b4ba3247b413 Mon Sep 17 00:00:00 2001 From: Matt Saladna Date: Thu, 21 Jun 2018 16:38:15 -0400 Subject: [PATCH] Add test for NVM_DIR outside nvm.sh Fix symlink traversal --- nvm-exec | 3 ++- ... exec --lts\" when NVM_DIR differs from nvm" | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100755 "test/slow/nvm exec/Running \"nvm exec --lts\" when NVM_DIR differs from nvm" diff --git a/nvm-exec b/nvm-exec index d95c25c95c6..b806656495e 100755 --- a/nvm-exec +++ b/nvm-exec @@ -1,7 +1,8 @@ #!/usr/bin/env bash SOURCE=${BASH_SOURCE[0]} -test -L "$SOURCE" && SOURCE=$(readlink "$SOURCE") +test -L "$SOURCE" && command cd "$( dirname "$SOURCE" )" && \ + SOURCE=$(readlink "$SOURCE") DIR="$(command cd "$( dirname "$SOURCE" )" && pwd )" # shellcheck disable=SC1090 diff --git "a/test/slow/nvm exec/Running \"nvm exec --lts\" when NVM_DIR differs from nvm" "b/test/slow/nvm exec/Running \"nvm exec --lts\" when NVM_DIR differs from nvm" new file mode 100755 index 00000000000..e76f89cace6 --- /dev/null +++ "b/test/slow/nvm exec/Running \"nvm exec --lts\" when NVM_DIR differs from nvm" @@ -0,0 +1,17 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +INSTPATH="$(mktemp -p "$(pwd)" -d)" +trap 'test ! -z "${INSTPATH-}" && test -d "$INSTPATH" && rm -rf "$INSTPATH"' EXIT +declare -x NVM_DIR=$INSTPATH +\. ../../../nvm.sh + +nvm install --lts || die 'nvm install --lts failed' +nvm exec --lts npm --version || die "`nvm exec` failed to run" +declare -x NODE_VERSION="$(nvm exec --lts --silent node --version)" + +ln -s ../../../../nvm-exec "$INSTPATH/nvm-exec" || die "failed to create a symlink to $INSTPATH/" +"$INSTPATH/nvm-exec" npm ls > /dev/null || die "`nvm exec` failed to run using nvm-exec helper" \ No newline at end of file