Archived
1
0
Fork 0
This repository has been archived on 2021-10-08. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
ACU/commands/manage-server.sh
2013-09-30 10:55:09 +02:00

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