From c181a0a7023489268b3189406239f92b87b84275 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Mon, 2 Oct 2023 14:50:13 +0200 Subject: [PATCH 1/3] fix: make dev script play nice with _checkouts --- dev | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dev b/dev index 9f2b9450e..ea5a444cc 100755 --- a/dev +++ b/dev @@ -206,6 +206,13 @@ prepare_erl_libs() { fi done fi + if [ -e "_build/${profile}/checkouts" ]; then + for app in "_build/${profile}/checkouts"/*; do + erl_libs="${erl_libs}${sep}${app}" + done + else + echo "no checkouts" + fi export ERL_LIBS="$erl_libs" } From a8740c42cc630e0244f00d89347277e51acd95a2 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Mon, 2 Oct 2023 15:21:19 +0200 Subject: [PATCH 2/3] fix: dev script be more user-friendly --- dev | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dev b/dev index ea5a444cc..30d1700e6 100755 --- a/dev +++ b/dev @@ -40,6 +40,7 @@ COMMANDS: eval: Evaluate an Erlang expression OPTIONS: + -h|--help: Print this usage info. -p|--profile: emqx | emqx-enterprise, defaults to 'PROFILE' env. -c|--compile: Force recompile, otherwise starts with the already built libs in '_build/\$PROFILE/lib/'. @@ -98,6 +99,10 @@ esac while [ "$#" -gt 0 ]; do case $1 in + -h|--help) + usage + exit 0 + ;; -n|--name) EMQX_NODE_NAME="$2" shift 1 @@ -119,6 +124,7 @@ while [ "$#" -gt 0 ]; do ;; *) logerr "Unknown argument $1" + usage exit 1 ;; esac From ad4dac52eb773a7e31f7dddd3aefeaba2ac1430b Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Mon, 2 Oct 2023 15:21:54 +0200 Subject: [PATCH 3/3] feat: dev script support short names --- dev | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/dev b/dev index 30d1700e6..2d204a0b4 100755 --- a/dev +++ b/dev @@ -46,6 +46,7 @@ OPTIONS: in '_build/\$PROFILE/lib/'. -e|--ekka-epmd: Force to use ekka_epmd. -n|--name: Node name, defaults to \$EMQX_NODE__NAME or the \$EMQX_NODE_NAME env. + -s|--shortnames: Use shortnames for erlang node name (ie. use -sname parameter). ENVIRONMENT VARIABLES: @@ -70,6 +71,7 @@ PROFILE="${PROFILE:-emqx}" FORCE_COMPILE=0 # Do not start using ekka epmd by default, so your IDE can connect to it EKKA_EPMD=0 +SHORTNAMES=0 COMMAND='run' case "${1:-novalue}" in novalue) @@ -117,6 +119,9 @@ while [ "$#" -gt 0 ]; do -e|--ekka-epmd) EKKA_EPMD=1 ;; + -s|--shortnames) + SHORTNAMES=1 + ;; --) shift PASSTHROUGH_ARGS=("$@") @@ -177,6 +182,12 @@ else EPMD_ARGS='' fi +if [ $SHORTNAMES -eq 1 ]; then + ERL_NAME_ARG='-sname' +else + ERL_NAME_ARG='-name' +fi + ## build compile the profile is it's not compiled yet prepare_erl_libs() { @@ -301,7 +312,7 @@ append_args_file() { ## ensure a new line at the end echo '' >> "$ARGS_FILE" cat <> "$ARGS_FILE" --name $EMQX_NODE_NAME +$ERL_NAME_ARG $EMQX_NODE_NAME -mnesia dir '"$EMQX_DATA_DIR/mnesia/$EMQX_NODE_NAME"' -stdlib restricted_shell emqx_restricted_shell +spp true @@ -399,7 +410,7 @@ boot() { # shellcheck disable=SC2086 env APPS="$APPS" iex \ - --name "$EMQX_NODE_NAME" \ + -$ERL_NAME_ARG "$EMQX_NODE_NAME" \ --erl "$EPMD_ARGS_ELIXIR" \ --erl '-user Elixir.IEx.CLI' \ --erl '-proto_dist ekka' \ @@ -415,7 +426,7 @@ boot() { " # shellcheck disable=SC2086 - erl -name "$EMQX_NODE_NAME" \ + erl $ERL_NAME_ARG "$EMQX_NODE_NAME" \ $EPMD_ARGS \ -proto_dist ekka \ -args_file "$ARGS_FILE" \ @@ -429,14 +440,18 @@ boot() { gen_tmp_node_name() { local rnd rnd="$(od -t u -N 4 /dev/urandom | head -n1 | awk '{print $2 % 1000}')" - echo "remsh${rnd}-${EMQX_NODE_NAME}" + if [ $SHORTNAMES -eq 1 ]; then + echo "remsh${rnd}" + else + echo "remsh${rnd}-${EMQX_NODE_NAME}" + fi } remsh() { local tmpnode tmpnode="$(gen_tmp_node_name)" # shellcheck disable=SC2086 - erl -name "$tmpnode" \ + erl $ERL_NAME_ARG "$tmpnode" \ -hidden \ -setcookie "$COOKIE" \ -remsh "$EMQX_NODE_NAME" \ @@ -449,7 +464,7 @@ eval_remsh_erl() { tmpnode="$(gen_tmp_node_name)" erl_code="$1" # shellcheck disable=SC2086 # need to expand EMQD_ARGS - erl -name "$tmpnode" -setcookie "$COOKIE" -hidden -noshell $EPMD_ARGS -eval "$erl_code" 2>&1 + erl $ERL_NAME_ARG "$tmpnode" -setcookie "$COOKIE" -hidden -noshell $EPMD_ARGS -eval "$erl_code" 2>&1 } ctl() {