|
|
@@ -69,14 +69,14 @@ usage() {
|
|
|
echo "Print path to Erlang runtime dir"
|
|
|
;;
|
|
|
rpc)
|
|
|
- echo "Usge $REL_NAME rpc MODULE FUNCTION [ARGS, ...]"
|
|
|
+ echo "Usage $REL_NAME rpc MODULE FUNCTION [ARGS, ...]"
|
|
|
echo "Connect to the $EMQX_DESCRIPTION node and make an Erlang RPC"
|
|
|
echo "The result of the RPC call must be 'ok'"
|
|
|
echo "This command blocks for at most 60 seconds in case the node"
|
|
|
echo "does not reply the call in time"
|
|
|
;;
|
|
|
rpcterms)
|
|
|
- echo "Usge $REL_NAME rpcterms MODULE FUNCTION [ARGS, ...]"
|
|
|
+ echo "Usage $REL_NAME rpcterms MODULE FUNCTION [ARGS, ...]"
|
|
|
echo "Connect to the $EMQX_DESCRIPTION node and make an Erlang RPC"
|
|
|
echo "The result of the RPC call is pretty-printed as an Erlang term"
|
|
|
;;
|
|
|
@@ -173,9 +173,9 @@ if [ "$ES" -ne 0 ]; then
|
|
|
exit $ES
|
|
|
fi
|
|
|
|
|
|
-## IS_BOOT_COMMAND is set for later to inspect node name and cookie
|
|
|
-## from hocon config (or env variable), which resides in
|
|
|
-## `common_defs2.sh`.
|
|
|
+## IS_BOOT_COMMAND is set to be later used by `common_defs2.sh` to
|
|
|
+## inspect node name and cookie from hocon config (or env variable),
|
|
|
+## which also resides in `common_defs2.sh`.
|
|
|
case "${COMMAND}" in
|
|
|
start|console|console_clean|foreground)
|
|
|
IS_BOOT_COMMAND='yes'
|
|
|
@@ -368,11 +368,23 @@ case "${COMMAND}" in
|
|
|
# shellcheck disable=SC2086 # $CONFIG_ARGS $EPMD_ARG are supposed to be split by whitespace
|
|
|
# Build an array of arguments to pass to exec later on
|
|
|
# Build it here because this command will be used for logging.
|
|
|
- set -- "$BINDIR/erlexec" \
|
|
|
- -boot "$BOOTFILE" -mode "$CODE_LOADING_MODE" \
|
|
|
- -boot_var ERTS_LIB_DIR "$ERTS_LIB_DIR" \
|
|
|
- -mnesia dir "\"${MNESIA_DATA_DIR}\"" \
|
|
|
- $CONFIG_ARGS $EPMD_ARG
|
|
|
+ if [ "$IS_ELIXIR" = yes ]
|
|
|
+ then
|
|
|
+ set -- "$REL_DIR/iex" \
|
|
|
+ --boot "$BOOTFILE" \
|
|
|
+ --erl "-mode $CODE_LOADING_MODE" \
|
|
|
+ --boot-var RELEASE_LIB "$ERTS_LIB_DIR" \
|
|
|
+ --erl "-mnesia dir \"${MNESIA_DATA_DIR}\"" \
|
|
|
+ --erl "$CONFIG_ARGS" \
|
|
|
+ --erl "$EPMD_ARG" \
|
|
|
+ --werl
|
|
|
+ else
|
|
|
+ set -- "$BINDIR/erlexec" \
|
|
|
+ -boot "$BOOTFILE" -mode "$CODE_LOADING_MODE" \
|
|
|
+ -boot_var ERTS_LIB_DIR "$ERTS_LIB_DIR" \
|
|
|
+ -mnesia dir "\"${MNESIA_DATA_DIR}\"" \
|
|
|
+ $CONFIG_ARGS $EPMD_ARG
|
|
|
+ fi
|
|
|
|
|
|
# Log the startup
|
|
|
logger -t "${REL_NAME}[$$]" "EXEC: $* -- ${1+$ARGS}"
|
|
|
@@ -407,11 +419,25 @@ case "${COMMAND}" in
|
|
|
# shellcheck disable=SC2086 # $CONFIG_ARGS $EPMD_ARG are supposed to be split by whitespace
|
|
|
# Build an array of arguments to pass to exec later on
|
|
|
# Build it here because this command will be used for logging.
|
|
|
- set -- "$BINDIR/erlexec" $FOREGROUNDOPTIONS \
|
|
|
- -boot "$REL_DIR/$BOOTFILE" -mode "$CODE_LOADING_MODE" \
|
|
|
- -boot_var ERTS_LIB_DIR "$ERTS_LIB_DIR" \
|
|
|
- -mnesia dir "\"${MNESIA_DATA_DIR}\"" \
|
|
|
- $CONFIG_ARGS $EPMD_ARG
|
|
|
+ if [ "$IS_ELIXIR" = yes ]
|
|
|
+ then
|
|
|
+ set -- "$REL_DIR/elixir" \
|
|
|
+ --boot "$REL_DIR/start" \
|
|
|
+ --erl "$FOREGROUNDOPTIONS" \
|
|
|
+ --erl "-mode $CODE_LOADING_MODE" \
|
|
|
+ --boot-var RELEASE_LIB "$ERTS_LIB_DIR" \
|
|
|
+ --boot-var ERTS_LIB_DIR "$ERTS_LIB_DIR" \
|
|
|
+ --erl "-mnesia dir \"${MNESIA_DATA_DIR}\"" \
|
|
|
+ --erl "$CONFIG_ARGS" \
|
|
|
+ --erl "$EPMD_ARG" \
|
|
|
+ --no-halt
|
|
|
+ else
|
|
|
+ set -- "$BINDIR/erlexec" $FOREGROUNDOPTIONS \
|
|
|
+ -boot "$REL_DIR/$BOOTFILE" -mode "$CODE_LOADING_MODE" \
|
|
|
+ -boot_var ERTS_LIB_DIR "$ERTS_LIB_DIR" \
|
|
|
+ -mnesia dir "\"${MNESIA_DATA_DIR}\"" \
|
|
|
+ $CONFIG_ARGS $EPMD_ARG
|
|
|
+ fi
|
|
|
|
|
|
# Log the startup
|
|
|
logger -t "${REL_NAME}[$$]" "EXEC: $* -- ${1+$ARGS}"
|
|
|
@@ -453,7 +479,12 @@ case "${COMMAND}" in
|
|
|
assert_node_alive
|
|
|
|
|
|
shift
|
|
|
- relx_nodetool "eval" "$@"
|
|
|
+ if [ "$IS_ELIXIR" = "yes" ]
|
|
|
+ then
|
|
|
+ relx_nodetool "eval-elixir" "$@"
|
|
|
+ else
|
|
|
+ relx_nodetool "eval" "$@"
|
|
|
+ fi
|
|
|
;;
|
|
|
*)
|
|
|
usage "$COMMAND"
|