From 92003fa4dc99b2de024860dd0a89e5b1d6f9c87d Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Thu, 1 Jun 2017 08:04:11 +0200 Subject: [PATCH] Minor ejabberdctl improvements --- ejabberdctl.template | 47 +++++++++++++------------------------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index 8053ea2df..eafca9126 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -59,6 +59,7 @@ shift $((OPTIND-1)) : ${EJABBERDCTL_CONFIG_PATH:="$ETC_DIR"/ejabberdctl.cfg} [ -f "$EJABBERDCTL_CONFIG_PATH" ] && . "$EJABBERDCTL_CONFIG_PATH" [ "$ERLANG_NODE_ARG" != "" ] && ERLANG_NODE=$ERLANG_NODE_ARG +[ "$ERLANG_NODE" = "${ERLANG_NODE%.*}" ] && S="-s" : ${EJABBERD_DOC_PATH:={{docdir}}} : ${EJABBERD_LOG_PATH:="$LOGS_DIR"/ejabberd.log} @@ -75,25 +76,17 @@ if [ "$INET_DIST_INTERFACE" != "" ] ; then ERLANG_OPTS="$ERLANG_OPTS -kernel inet_dist_use_interface \"$INET_DIST_INTERFACE2\"" fi fi -if [ "$ERLANG_NODE" = "${ERLANG_NODE%.*}" ] ; then - NAME="-sname" -else - NAME="-name" -fi ERL_LIBS={{libdir}} ERL_CRASH_DUMP="$LOGS_DIR"/erl_crash_$(date "+%Y%m%d-%H%M%S").dump ERL_INETRC="$ETC_DIR"/inetrc # define ejabberd parameters -rate=$(sed '/^[ ]*log_rate_limit/!d;s/.*://;s/ *//' "$EJABBERD_CONFIG_PATH") -rotate=$(sed '/^[ ]*log_rotate_size/!d;s/.*://;s/ *//' "$EJABBERD_CONFIG_PATH") -count=$(sed '/^[ ]*log_rotate_count/!d;s/.*://;s/ *//' "$EJABBERD_CONFIG_PATH") -date=$(sed '/^[ ]*log_rotate_date/!d;s/.*://;s/ *//' "$EJABBERD_CONFIG_PATH") -[ -z "$rate" ] || EJABBERD_OPTS="log_rate_limit $rate" -[ -z "$rotate" ] || EJABBERD_OPTS="$EJABBERD_OPTS log_rotate_size $rotate" -[ -z "$count" ] || EJABBERD_OPTS="$EJABBERD_OPTS log_rotate_count $count" -[ -z "$date" ] || EJABBERD_OPTS="$EJABBERD_OPTS log_rotate_date '$date'" -[ -z "$EJABBERD_OPTS" ] || EJABBERD_OPTS="-ejabberd $EJABBERD_OPTS" +EJABBERD_OPTS="$EJABBERD_OPTS\ + $(sed '/^log_rate_limit/!d;s/:[ \t]*\([0-9]*\).*/ \1/' "$EJABBERD_CONFIG_PATH")\ + $(sed '/^log_rotate_size/!d;s/:[ \t]*\([0-9]*\).*/ \1/' "$EJABBERD_CONFIG_PATH")\ + $(sed '/^log_rotate_count/!d;s/:[ \t]*\([0-9]*\).*/ \1/' "$EJABBERD_CONFIG_PATH")\ + $(sed '/^log_rotate_date/!d;s/:[ \t]*\(.[^ ]*\).*/ \1/' "$EJABBERD_CONFIG_PATH")" +[ -n "$EJABBERD_OPTS" ] && EJABBERD_OPTS="-ejabberd $EJABBERD_OPTS" EJABBERD_OPTS="-mnesia dir \"$SPOOL_DIR\" $MNESIA_OPTIONS $EJABBERD_OPTS -s ejabberd" # export global variables @@ -121,12 +114,12 @@ exec_cmd() exec_erl() { NODE=$1; shift - exec_cmd $ERL $NAME $NODE $ERLANG_OPTS "$@" + exec_cmd $ERL ${S:--}name $NODE $ERLANG_OPTS "$@" } exec_iex() { NODE=$1; shift - exec_cmd $IEX -$NAME $NODE --erl "$ERLANG_OPTS" "$@" + exec_cmd $IEX ${S:--}name $NODE --erl "$ERLANG_OPTS" "$@" } # usage @@ -198,22 +191,6 @@ help() echo "" } -# generic erlang node ping feature -ping() -{ - PEER=${1:-$ERLANG_NODE} - if [ "$PEER" = "${PEER%.*}" ] ; then - PING_NAME="-sname" - PING_NODE=$(hostname -s) - else - PING_NAME="-name" - PING_NODE=$(hostname) - fi - exec_cmd $ERL $PING_NAME $(uid ping $PING_NODE) $ERLANG_OPTS \ - -noinput -hidden -eval 'io:format("~p~n",[net_adm:ping('"$PEER"')])' \ - -s erlang halt -output text -} - # dynamic node name helper uid() { @@ -310,7 +287,11 @@ case $1 in exec_iex $ERLANG_NODE --erl "$EJABBERD_OPTS" --app ejabberd ;; ping) - ping $2 + PEER=${2:-$ERLANG_NODE} + [ "$PEER" = "${PEER%.*}" ] && PS="-s" + exec_cmd $ERL ${PS:--}name $(uid ping $(hostname $PS)) $ERLANG_OPTS \ + -noinput -hidden -eval 'io:format("~p~n",[net_adm:ping('"$PEER"')])' \ + -s erlang halt -output text ;; started) wait_status 0 30 2 # wait 30x2s before timeout