sourcemod/tools/gdc-psyfork/example-scripts/gdc_auto.sh

84 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
LOG_DESTINATION=/var/gdclog
if [ -e gdc.lock ] ; then
echo -e "GDC already running.\n"
exit 1
fi
touch gdc.lock
games=(
"CStrike"
)
email_test=(
"self@example.com"
)
email_all=(
"self@example.com"
)
email_cstrike=(
"css-op@example.com"
"css-op2@example.com"
"css-op3@example.com"
)
for i in "${games[@]}"
do
lcgame=$(echo $i | tr '[A-Z]' '[a-z]')
filename=$(date +%Y-%m-%d-%H%M%S)-${lcgame}.log
fullfilename=log/$filename
2013-04-30 02:51:54 +02:00
./gdc_${lcgame}.sh auto 2>&1 | tee -a ${fullfilename}
if [ ${PIPESTATUS[0]} -ne 0 ] ; then
echo -e "No change. Removing useless log.\n"
rm $fullfilename
else
cp $fullfilename $LOG_DESTINATION
if [ "$1" == "test" ] ; then
for j in "${email_test[@]}"
do
echo -e "Sending test email to ${j}\n"
mutt -s "$i GDC update" $j < $fullfilename
done
if [ "$2" == "log" ] ; then
# when testing, don't write to log unless we really want the bot to show it
echo $(date +%s),${filename},$i >> ~/gdclog
fi
else
# log for pickup by bot
echo $(date +%s),${filename},$i >> ~/gdclog
for j in "${email_all[@]}"
do
echo -e "Sending email to ${j}\n"
mutt -s "$i GDC update" $j < $fullfilename
done
varname=email_$lcgame
eval k=\${#$varname[@]}
max=($k - 1)
for (( m=0; m < $max; m++ ));
do
eval k=\${$varname[m]}
echo -e "Sending email to ${k}\n"
mutt -s "$i GDC update" $k < $fullfilename
done
fi # just testing
fi
done
rm -f gdc.lock