aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis Rascao <[email protected]>2016-10-27 00:43:47 +0100
committerLuis Rascao <[email protected]>2016-10-27 19:09:02 +0100
commit602f866a10039a79ef86edbf168762ebb435a2d4 (patch)
tree06becbf7145b7c87960fbdb3264d25b5a4a33cca
parent3ecc5c8a054fb4bf5515848d572b201fc2f5d13a (diff)
downloadrelx-602f866a10039a79ef86edbf168762ebb435a2d4.tar.gz
relx-602f866a10039a79ef86edbf168762ebb435a2d4.tar.bz2
relx-602f866a10039a79ef86edbf168762ebb435a2d4.zip
Give code path access to console_clean
To allow manually loading and starting up applications.
-rwxr-xr-xpriv/templates/extended_bin15
1 files changed, 14 insertions, 1 deletions
diff --git a/priv/templates/extended_bin b/priv/templates/extended_bin
index e844e46..ddecc8b 100755
--- a/priv/templates/extended_bin
+++ b/priv/templates/extended_bin
@@ -89,6 +89,16 @@ relx_start_command() {
"$START_OPTION"
}
+relx_get_code_paths() {
+ code="{ok, [{release,_,_,Apps}]} = file:consult(\"$REL_DIR/$REL_NAME.rel\"),"\
+"lists:foreach(fun(A) ->"\
+" io:fwrite(\"$ROOTDIR/lib/~p-~s/ebin \", [element(1, A), element(2, A)]) "\
+"end, Apps),"\
+"halt()."
+
+ "$BINDIR/erl" -noshell -boot start_clean -eval "$code"
+}
+
# Use $CWD/vm.args if exists, otherwise releases/VSN/vm.args
if [ -z "$VMARGS_PATH" ]; then
if [ -f "$RELEASE_ROOT_DIR/vm.args" ]; then
@@ -346,6 +356,7 @@ case "$1" in
;;
console|console_clean|console_boot)
+ __code_paths=""
# .boot file typically just $REL_NAME (ie, the app name)
# however, for debugging, sometimes start_clean.boot is useful.
# For e.g. 'setup', one may even want to name another boot script.
@@ -358,6 +369,7 @@ case "$1" in
fi
;;
console_clean)
+ __code_paths=$(relx_get_code_paths)
BOOTFILE="$ROOTDIR/bin/start_clean"
;;
console_boot)
@@ -381,7 +393,8 @@ case "$1" in
set -- "$BINDIR/erlexec" -boot "$BOOTFILE" -mode "$CODE_LOADING_MODE" \
-boot_var ERTS_LIB_DIR "$ERTS_LIB_DIR" \
-config "$RELX_CONFIG_PATH" \
- -args_file "$VMARGS_PATH"
+ -args_file "$VMARGS_PATH" \
+ -pa ${__code_paths}
# Dump environment info for logging purposes
echo "Exec: $@" -- ${1+$ARGS}