Skip to content

Commit

Permalink
Merge pull request #154 from nuex/quote_vars
Browse files Browse the repository at this point in the history
Give release scripts ability to handle directories with spaces
  • Loading branch information
jwilberding committed Mar 29, 2014
2 parents a3508b0 + 42c0d49 commit 0d292ff
Show file tree
Hide file tree
Showing 3 changed files with 168 additions and 116 deletions.
60 changes: 35 additions & 25 deletions priv/templates/bin.dtl
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,61 @@

set -e

SCRIPT_DIR=`dirname $0`
RELEASE_ROOT_DIR=`cd $SCRIPT_DIR/.. && pwd`
REL_NAME={{ rel_name }}
REL_VSN={{ rel_vsn }}
ERTS_VSN={{ erts_vsn }}
REL_DIR=$RELEASE_ROOT_DIR/releases/$REL_VSN
ERL_OPTS={{ erl_opts }}
SCRIPT_DIR="$(dirname "$0")"
RELEASE_ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
REL_NAME="{{ rel_name }}"
REL_VSN="{{ rel_vsn }}"
ERTS_VSN="{{ erts_vsn }}"
REL_DIR="$RELEASE_ROOT_DIR/releases/$REL_VSN"
ERL_OPTS="{{ erl_opts }}"

find_erts_dir() {
local erts_dir=$RELEASE_ROOT_DIR/erts-$ERTS_VSN
local erts_dir="$RELEASE_ROOT_DIR/erts-$ERTS_VSN"
if [ -d "$erts_dir" ]; then
ERTS_DIR=$erts_dir;
ROOTDIR=$RELEASE_ROOT_DIR
ERTS_DIR="$erts_dir";
ROOTDIR="$RELEASE_ROOT_DIR"
else
local erl=`which erl`
local erl_root=`$erl -noshell -eval "io:format(\\"~s\\", [code:root_dir()])." -s init stop`
ERTS_DIR=$erl_root/erts-$ERTS_VSN
ROOTDIR=$erl_root
local erl="$(which erl)"
local erl_root="$("$erl" -noshell -eval "io:format(\\"~s\\", [code:root_dir()])." -s init stop)"
ERTS_DIR="$erl_root/erts-$ERTS_VSN"
ROOTDIR="$erl_root"
fi

}

find_sys_config() {
local possible_sys=$REL_DIR/sys.config
local possible_sys="$REL_DIR/sys.config"
if [ -f "$possible_sys" ]; then
SYS_CONFIG="-config $possible_sys"
SYS_CONFIG="$possible_sys"
fi
}

find_vm_args() {
local possible_vm_args=$REL_DIR/vm.args
local possible_vm_args="$REL_DIR/vm.args"
if [ -f "$possible_vm_args" ]; then
VM_ARGS="-args_file $possible_vm_args"
VM_ARGS="$possible_vm_args"
fi
}

find_erts_dir
find_sys_config
find_vm_args
export ROOTDIR=$RELEASE_ROOT_DIR
export BINDIR=$ERTS_DIR/bin
export EMU=beam
export PROGNAME=erl
export LD_LIBRARY_PATH=$ERTS_DIR/lib:$LD_LIBRARY_PATH
export ROOTDIR="$RELEASE_ROOT_DIR"
export BINDIR="$ERTS_DIR/bin"
export EMU="beam"
export PROGNAME="erl"
export LD_LIBRARY_PATH="$ERTS_DIR/lib:$LD_LIBRARY_PATH"

cd $ROOTDIR
cd "$ROOTDIR"

$BINDIR/erlexec $ERL_OPTS $SYS_CONFIG $VM_ARGS -boot $REL_DIR/$REL_NAME $@
# Save extra arguments
ARGS="$@"

# Build arguments for erlexec
set -- "$ERL_OPTS"
[ "$SYS_CONFIG" ] && set -- "$@" -config "$SYS_CONFIG"
[ "$VM_ARGS" ] && set -- "$@" -args_file "$VM_ARGS"
set -- "$@" -boot "$REL_DIR/$REL_NAME" "$ARGS"

# Boot the release
"$BINDIR/erlexec" "$@"
Loading

0 comments on commit 0d292ff

Please sign in to comment.