128 lines
2.2 KiB
Bash
Executable file
128 lines
2.2 KiB
Bash
Executable file
#! /bin/bash
|
|
|
|
cd $(dirname "$0")
|
|
|
|
WKS_LIST="apl"
|
|
SRV_LIST="moore noyce hamano cpp"
|
|
SCP_LIST="ksh"
|
|
|
|
KNOWN_ACTIONS="start stop restart update log viewlog view_log"
|
|
|
|
LOG=`mktemp`
|
|
|
|
ACTIONS=
|
|
DESTS=
|
|
USED=1
|
|
while [ $# -gt 0 ] && [ $USED -eq 1 ]
|
|
do
|
|
|
|
USED=0
|
|
|
|
for ACT in $KNOWN_ACTIONS
|
|
do
|
|
if [ -n "$1" ] && [ "$1" == "$ACT" ]
|
|
then
|
|
ACTIONS="$ACTIONS $ACT"
|
|
USED=1
|
|
break
|
|
fi
|
|
done
|
|
|
|
for DEST in $WKS_LIST $SRV_LIST $SCP_LIST
|
|
do
|
|
if [ -n "$1" ] && [ "$1" == "$DEST" ]
|
|
then
|
|
DESTS="$DESTS $DEST"
|
|
USED=1
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ "$1" == "@srv" ]
|
|
then
|
|
DESTS="$DESTS $SRV_LIST"
|
|
USED=1
|
|
elif [ "$1" == "@wks" ]
|
|
then
|
|
DESTS="$DESTS $WKS_LIST"
|
|
USED=1
|
|
fi
|
|
|
|
if [ $USED -eq 1 ]
|
|
then
|
|
shift
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
if [ -z "$ACTIONS" ]
|
|
then
|
|
echo "Usage: $0 [where] <`echo $KNOWN_ACTIONS | sed 's/ /|/g'`> [options]"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$DESTS" ]
|
|
then
|
|
DESTS="$SRV_LIST $WKS_LIST $SCP_LIST"
|
|
fi
|
|
|
|
OPTIONS=
|
|
while [ $# -gt 0 ]
|
|
do
|
|
OPTIONS="$OPTIONS $1"
|
|
shift
|
|
done
|
|
|
|
FAIL=0
|
|
for ACTION in $ACTIONS
|
|
do
|
|
for DEST in $DESTS
|
|
do
|
|
echo -e "\e[1;34m>>>\e[0m \e[33m$ACTION\e[0m on \e[1m$DEST\e[0m"
|
|
if [ "$ACTION" == "update" ]
|
|
then
|
|
SCP=0
|
|
for D in $SCP_LIST
|
|
do
|
|
if [ $D == $DEST ]
|
|
then
|
|
SCP=1
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ $SCP -eq 0 ]
|
|
then
|
|
ssh root@$DEST "make -C liblerdorf update upgrade"
|
|
else
|
|
cd ..
|
|
git archive -o ./liblerdorf.tbz2 master
|
|
scp ./liblerdorf.tbz2 root@$DEST:
|
|
cd -
|
|
ssh root@$DEST rm -rf liblerdorf
|
|
ssh root@$DEST mkdir -p liblerdorf
|
|
ssh root@$DEST tar xf ./liblerdorf.tbz2 -C liblerdorf
|
|
ssh root@$DEST "DEST=/usr/local/lib/perl5/5.14/ACU make -C liblerdorf upgrade"
|
|
fi
|
|
elif [ "$ACTION" == "log" ] || [ "$ACTION" == "viewlog" ] || [ "$ACTION" == "view_log" ]
|
|
then
|
|
ssh root@$DEST '~'/liblerdorf/process/view_log.sh $OPTIONS
|
|
else
|
|
ssh root@$DEST '~'/liblerdorf/process/launch.sh "$ACTION"
|
|
fi
|
|
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo -e "\e[1;32m>>>\e[0m \e[33m$ACTION\e[0m success on \e[1m$DEST\e[0m" | tee -a "$LOG"
|
|
else
|
|
echo -e "\e[1;31m>>>\e[0m \e[33m$ACTION\e[0m fails on \e[1m$DEST\e[0m" | tee -a "$LOG"
|
|
FAIL=1
|
|
fi
|
|
echo
|
|
done
|
|
done
|
|
|
|
cat "$LOG"
|
|
|
|
exit $FAIL
|