diff --git a/executable/Env.re b/executable/Env.re index 6881331..792890f 100644 --- a/executable/Env.re +++ b/executable/Env.re @@ -78,7 +78,7 @@ let printUseOnCd = (~shell) => switch (shell) { | System.Shell.Bash => {| __fnmcd () { - cd $@ + cd "$@" if [[ -f .node-version && .node-version ]]; then echo "fnm: Found .node-version" diff --git a/feature_tests/run.sh b/feature_tests/run.sh index 8ecdcb4..2aef50a 100755 --- a/feature_tests/run.sh +++ b/feature_tests/run.sh @@ -2,8 +2,9 @@ set -e -DIRECTORY=`dirname $0` -BINARY=$1 +DIRECTORY="$(dirname "$0")" +BINARY="$1" +SPECIFIC_TEST="$2" TEMP_DIR_BASE=$(pwd)/$DIRECTORY/.tmp TEMP_BINARY_PATH=$TEMP_DIR_BASE/bin TEMP_FNM_DIR=$TEMP_DIR_BASE/.fnm @@ -15,18 +16,30 @@ fi echo "using fnm=$BINARY" -rm -rf $TEMP_DIR_BASE -mkdir $TEMP_DIR_BASE $TEMP_BINARY_PATH -cp $BINARY $TEMP_BINARY_PATH/fnm +rm -rf "$TEMP_DIR_BASE" +mkdir "$TEMP_DIR_BASE" "$TEMP_BINARY_PATH" +cp "$BINARY" "$TEMP_BINARY_PATH/fnm" -for test_file in $DIRECTORY/*/run.sh; do - rm -rf $TEMP_FNM_DIR +run_test() { + test_file="$1" + rm -rf "$TEMP_FNM_DIR" + + TEST_BASENAME="$(basename "$test_file")" + TEST_DIRNAME="$(dirname "$test_file")" echo "Running test in $test_file" echo "Running test in $test_file" | sed "s/./-/g" - (cd $(dirname $test_file) && FNM_DIR=$TEMP_FNM_DIR PATH=$TEMP_BINARY_PATH:$PATH bash $(basename $test_file)) + (cd "$TEST_DIRNAME" && FNM_DIR="$TEMP_FNM_DIR" PATH="$TEMP_BINARY_PATH:$PATH" bash "$TEST_BASENAME") echo "" echo " -> Finished!" - rm -rf $TEMP_FNM_DIR -done + rm -rf "$TEMP_FNM_DIR" +} + +if [ "$SPECIFIC_TEST" == "" ]; then + for test_file in "$DIRECTORY"/*/run.sh; do + run_test "$test_file" + done +else + run_test "$SPECIFIC_TEST" +fi diff --git a/feature_tests/use_on_cd/dot_node_version/.node-version b/feature_tests/use_on_cd/dot node version/.node-version similarity index 100% rename from feature_tests/use_on_cd/dot_node_version/.node-version rename to feature_tests/use_on_cd/dot node version/.node-version diff --git a/feature_tests/use_on_cd/run.sh b/feature_tests/use_on_cd/run.sh index 179ebe8..d89db2d 100644 --- a/feature_tests/use_on_cd/run.sh +++ b/feature_tests/use_on_cd/run.sh @@ -2,9 +2,7 @@ set -e -DIRECTORY=`dirname $0` - -eval "`fnm env --multi`" +eval "$(fnm env --multi)" fnm install 6.11.3 fnm install 8.11.3 fnm use 6.11.3 @@ -34,7 +32,7 @@ if hash zsh 2>/dev/null; then fi fnm use 6.11.3 - cd ../dot_node_version + cd ../dot\ node\ version NODE_VERSION=$(node -v) if [ "$NODE_VERSION" != "v8.11.3" ]; then @@ -69,7 +67,7 @@ if hash fish 2>/dev/null; then end fnm use 6.11.3 - cd ../dot_node_version + cd ../dot\ node\ version set NODE_VERSION (node -v) if test "$NODE_VERSION" != "v8.11.3" @@ -83,6 +81,7 @@ fi echo " > Running test on Bash..." bash -c ' + set -e shopt -s expand_aliases eval "`fnm env --multi --use-on-cd`" fnm use 6.11.3 @@ -98,7 +97,7 @@ bash -c ' exit 1 fi fnm use 6.11.3 - cd ../dot_node_version + cd ../dot\ node\ version NODE_VERSION=$(node -v) if [ "$NODE_VERSION" != "v8.11.3" ]; then echo "Failed: Node version ($NODE_VERSION) is not v8.11.3"