summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2019-01-08 16:37:05 +0100
committerJosé Valim <jose.valim@plataformatec.com.br>2019-01-08 16:37:29 +0100
commit3962a7e078f44b65b6aaad97857c0358d25fccd6 (patch)
tree9e8f8cde6054235e48e934842dc2f18c03cda3e5
parent58c947fc3433dc26aad26286f9883b196de62269 (diff)
downloadelixir-jv-release-bin.tar.gz
Fix escaping in bashjv-release-bin
-rwxr-xr-xbin/elixir95
1 files changed, 40 insertions, 55 deletions
diff --git a/bin/elixir b/bin/elixir
index 1b421c3bf..6feee5fdb 100755
--- a/bin/elixir
+++ b/bin/elixir
@@ -70,34 +70,30 @@ readlink_f () {
MODE="elixir"
ERL_EXEC="erl"
ERL=""
-ELIXIR=""
I=1
+LENGTH=$#
-while [ $I -le $# ]; do
- eval "PEEK=\${$I}"
- case "$PEEK" in
+while [ $I -le $LENGTH ]; do
+ S=1
+ case "$1" in
+iex)
- ELIXIR="$ELIXIR +iex"
+ set -- "$@" "$1"
MODE="iex"
;;
+elixirc)
- ELIXIR="$ELIXIR +elixirc"
+ set -- "$@" "$1"
MODE="elixirc"
;;
-v|--no-halt)
- ELIXIR="$ELIXIR $PEEK"
+ set -- "$@" "$1"
;;
-e|-r|-pr|-pa|-pz|--app|--eval|--remsh)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ELIXIR="$ELIXIR $PEEK \"$VAL\""
+ S=2
+ set -- "$@" "$1" "$2"
;;
--rpc-eval)
- I=$(($I + 1))
- eval "VAL1=\${$I}"
- I=$(($I + 1))
- eval "VAL2=\${$I}"
- ELIXIR="$ELIXIR $PEEK \"$VAL1\" \"$VAL2\""
+ S=3
+ set -- "$@" "$1" "$2" "$3"
;;
--detached)
echo "warning: the --detached option is deprecated" >&2
@@ -107,66 +103,54 @@ while [ $I -le $# ]; do
ERL="$ERL -hidden"
;;
--cookie)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ERL="$ERL -setcookie "$VAL""
+ S=2
+ ERL="$ERL -setcookie "$2""
;;
--sname|--name)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ERL="$ERL $(echo $PEEK | cut -c 2-) "$VAL""
+ S=2
+ ERL="$ERL $(echo $1 | cut -c 2-) "$2""
;;
--logger-otp-reports)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- if [ "$VAL" = 'true' ] || [ "$VAL" = 'false' ]; then
- ERL="$ERL -logger handle_otp_reports "$VAL""
+ S=2
+ if [ "$2" = 'true' ] || [ "$2" = 'false' ]; then
+ ERL="$ERL -logger handle_otp_reports "$2""
fi
;;
--logger-sasl-reports)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- if [ "$VAL" = 'true' ] || [ "$VAL" = 'false' ]; then
- ERL="$ERL -logger handle_sasl_reports "$VAL""
+ S=2
+ if [ "$2" = 'true' ] || [ "$2" = 'false' ]; then
+ ERL="$ERL -logger handle_sasl_reports "$2""
fi
;;
--erl)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ERL="$ERL "$VAL""
+ S=2
+ ERL="$ERL "$2""
;;
--erl-config)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ERL="$ERL -config "$VAL""
+ S=2
+ ERL="$ERL -config "$2""
;;
--vm-args)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ERL="$ERL -args_file "$VAL""
+ S=2
+ ERL="$ERL -args_file "$2""
;;
--boot)
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ERL="$ERL -boot "$VAL""
+ S=2
+ ERL="$ERL -boot "$2""
;;
--boot-var)
- I=$(($I + 1))
- eval "KEY=\${$I}"
- I=$(($I + 1))
- eval "VAL=\${$I}"
- ERL="$ERL -boot_var "$KEY" "$VAL""
+ S=3
+ ERL="$ERL -boot_var "$2" "$3""
;;
--pipe-to)
- I=$(($I + 1))
- eval "RUN_ERL_PIPE=\${$I}"
+ S=3
+ RUN_ERL_PIPE="$2"
if [[ "$RUN_ERL_PIPE" == "-"* ]]; then
echo "--pipe-to : PIPEDIR cannot be a switch" >&2
exit 1
fi
- I=$(($I + 1))
- eval "RUN_ERL_LOG=\${$I}"
+ RUN_ERL_LOG="$3"
if [[ "$RUN_ERL_LOG" == "-"* ]]; then
echo "--pipe-to : LOGDIR cannot be a switch" >&2
exit 1
@@ -176,15 +160,17 @@ while [ $I -le $# ]; do
USE_WERL=true
;;
*)
- while [ $I -le $# ]; do
- eval "PEEK=\${$I}"
- ELIXIR="$ELIXIR \"$PEEK\""
+ while [ $I -le $LENGTH ]; do
I=$(($I + 1))
+ set -- "$@" "$1"
+ shift
done
break
;;
esac
- I=$(($I + 1))
+
+ I=$(($I + $S))
+ shift $S
done
SELF=$(readlink_f "$0")
@@ -200,7 +186,6 @@ else
if [ $USE_WERL ]; then ERL_EXEC="werl"; fi
fi
-eval set -- "$ELIXIR"
set -- "$ERTS_BIN$ERL_EXEC" -pa "$SCRIPT_PATH"/../lib/*/ebin $ELIXIR_ERL_OPTIONS $ERL -extra "$@"
if [ -n "$RUN_ERL_PIPE" ]; then