diff options
Diffstat (limited to 'tools/leavecluster')
-rwxr-xr-x | tools/leavecluster | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/tools/leavecluster b/tools/leavecluster index ec21621bc..cb4737adb 100755 --- a/tools/leavecluster +++ b/tools/leavecluster @@ -1,18 +1,15 @@ -#!/bin/bash +#!/bin/sh # Remove the current ejabberd node in a cluster # copyright (c) 2010-2015 ProcessOne -# -# This script is proprietary software and cannot be published or redistribute. # Return Code: # 0 : groovy baby +# 10 : ejabberdctl not found # 11 : erl not found # 12 : erlc not found -# 20 : database dir doesn't exist -# 21 : database dir not writable -# 21 : database dir variable not set +# 22 : temporary dir can not be created function error { @@ -33,25 +30,36 @@ echo "Press any key to continue, or Ctrl+C to stop now" read foo echo "" -HERE=`which "$0"` -BASE=`dirname $HERE`/.. -ROOTDIR=`cd $BASE; pwd` -. $ROOTDIR/bin/ejabberdctl stop 2>/dev/null >/dev/null -$ROOTDIR/bin/ejabberdctl stopped PA=/tmp/clustersetup_$$ +CTL=$(which ejabberdctl) +[ "$CTL" == "" ] && { + HERE=`which "$0"` + BASE=`dirname $HERE`/.. + ROOTDIR=`cd $BASE; pwd` + PATH=$ROOTDIR/bin:$PATH + PA=$ROOTDIR/clustersetup_$$ + CTL=$(which ejabberdctl) +} +echo "Using commands:" +[ -x $CTL ] && echo $CTL || error "can't find ejabberdctl" 10 + +. $CTL stop 2>/dev/null >/dev/null +ERLC=${ERL}c + +[ -x $ERL ] && echo $ERL || error "can't find erl" 11 +[ -x $ERLC ] && echo $ERLC || error "can't find erlc" 12 +echo "" + +$CTL stopped + CLUSTERSETUP=clustersetup CLUSTERSETUP_ERL=$PA/$CLUSTERSETUP.erl set -o errexit set -o nounset -echo "Using commands:" -which erl || error "can't find erl" 11 -which erlc || error "can't find erlc" 12 -echo "" - -cd $ROOTDIR -mkdir -p $PA +mkdir -p $PA || error "$PA cannot be created" 22 +cd $PA cat <<EOF > $CLUSTERSETUP_ERL -module($CLUSTERSETUP). @@ -89,8 +97,10 @@ start() -> end, halt(0). EOF -erlc -o $PA $CLUSTERSETUP_ERL -sh -c "erl $NAME $ERLANG_NODE -pa $PA $KERNEL_OPTS -mnesia dir "\"$SPOOL_DIR\"" -s mnesia -s $CLUSTERSETUP start" + +$ERLC -o $PA $CLUSTERSETUP_ERL +sh -c "$ERL $NAME $ERLANG_NODE -pa $PA $KERNEL_OPTS -mnesia dir \"\\\"$SPOOL_DIR\\\"\" -s mnesia -s $CLUSTERSETUP start" +cd - rm -Rf $PA echo "End." |