Browse Source

Support spaces in directory name in Bash (#169)

Bash script was using `cd $@` so "__fnm_cd hello\ world" was actually calling "cd hello world" instead of "cd 'hello world'"
remotes/origin/add-simple-redirecting-site
Gal Schlezinger 5 years ago committed by GitHub
parent
commit
3e40ca4bc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      executable/Env.re
  2. 33
      feature_tests/run.sh
  3. 0
      feature_tests/use_on_cd/dot node version/.node-version
  4. 11
      feature_tests/use_on_cd/run.sh

2
executable/Env.re

@ -78,7 +78,7 @@ let printUseOnCd = (~shell) => @@ -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"

33
feature_tests/run.sh

@ -2,8 +2,9 @@ @@ -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 @@ -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

0
feature_tests/use_on_cd/dot_node_version/.node-version → feature_tests/use_on_cd/dot node version/.node-version

11
feature_tests/use_on_cd/run.sh

@ -2,9 +2,7 @@ @@ -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 @@ -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 @@ -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 @@ -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 ' @@ -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"

Loading…
Cancel
Save