summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xrel/overlay/bin/remsh18
1 files changed, 16 insertions, 2 deletions
diff --git a/rel/overlay/bin/remsh b/rel/overlay/bin/remsh
index 963c16a10..2ac421b07 100755
--- a/rel/overlay/bin/remsh
+++ b/rel/overlay/bin/remsh
@@ -23,8 +23,18 @@ BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin
PROGNAME=${0##*/}
VERBOSE=""
NODE="couchdb@127.0.0.1"
-COOKIE=monster
LHOST=127.0.0.1
+VM_ARGS=$COUCHDB_BIN_DIR/../etc/vm.args
+
+# If present, extract cookie from ERL_FLAGS
+# This is used by the CouchDB Dockerfile and Helm chart
+COOKIE=$(echo "$ERL_FLAGS" | sed 's/^.*setcookie \([^ ][^ ]*\).*$/\1/g')
+if test -f "$VM_ARGS"; then
+# else attempt to extract from vm.args
+ VM_ARGS_COOKIE=$(awk '$1=="-setcookie"{print $2}' "$VM_ARGS")
+ COOKIE="${COOKIE:-$VM_ARGS_COOKIE}"
+fi
+COOKIE="${COOKIE:-monster}"
printHelpAndExit() {
echo "Usage: ${PROGNAME} [OPTION]... [-- <additional Erlang cli options>]"
@@ -71,6 +81,10 @@ if [ ! -z "$VERBOSE" ]; then
set -x
fi
-exec "$BINDIR/erl" -boot "$ROOTDIR/releases/$APP_VSN/start_clean" \
+# If present, strip -name or -setcookie from ERL_FLAGS
+# to avoid conflicts with the cli parameters
+ERL_FLAGS_CLEAN=$(echo "$ERL_FLAGS" | sed 's/-setcookie \([^ ][^ ]*\)//g' | sed 's/-name \([^ ][^ ]*\)//g')
+
+exec env ERL_FLAGS="$ERL_FLAGS_CLEAN" "$BINDIR/erl" -boot "$ROOTDIR/releases/$APP_VSN/start_clean" \
-name remsh$$@$LHOST -remsh $NODE -hidden -setcookie $COOKIE \
"$@"