tools/gdc-psyfork/example-scripts/gdc_auto.sh
author David Anderson <dvander@alliedmods.net>
Thu Aug 08 22:02:42 2013 -0700 (2013-08-08)
changeset 3980 dc7dfcd855dc
parent 3902 691bd6a50850
permissions -rw-r--r--
More Windows build fix.
skamonkey@3514
     1
#!/bin/bash
skamonkey@3514
     2
skamonkey@3514
     3
LOG_DESTINATION=/var/gdclog
skamonkey@3514
     4
skamonkey@3514
     5
if [ -e gdc.lock ] ; then
skamonkey@3514
     6
	echo -e "GDC already running.\n"
skamonkey@3514
     7
	exit 1
skamonkey@3514
     8
fi
skamonkey@3514
     9
skamonkey@3514
    10
touch gdc.lock
skamonkey@3514
    11
skamonkey@3514
    12
games=(
skamonkey@3514
    13
	"CStrike"
skamonkey@3514
    14
)
skamonkey@3514
    15
skamonkey@3514
    16
email_test=(
skamonkey@3514
    17
	"[email protected]"
skamonkey@3514
    18
)
skamonkey@3514
    19
skamonkey@3514
    20
email_all=(
skamonkey@3514
    21
	"[email protected]"
skamonkey@3514
    22
)
skamonkey@3514
    23
skamonkey@3514
    24
email_cstrike=(
skamonkey@3514
    25
	"[email protected]"
skamonkey@3514
    26
	"[email protected]"
skamonkey@3514
    27
	"[email protected]"
skamonkey@3514
    28
)
skamonkey@3514
    29
skamonkey@3514
    30
for i in "${games[@]}"
skamonkey@3514
    31
do
skamonkey@3514
    32
	lcgame=$(echo $i | tr '[A-Z]' '[a-z]')
skamonkey@3514
    33
skamonkey@3514
    34
	filename=$(date +%Y-%m-%d-%H%M%S)-${lcgame}.log
skamonkey@3514
    35
	fullfilename=log/$filename
skamonkey@3514
    36
skamonkey@3902
    37
	./gdc_${lcgame}.sh auto 2>&1 | tee -a ${fullfilename}
skamonkey@3514
    38
skamonkey@3514
    39
	if [ ${PIPESTATUS[0]} -ne 0 ] ; then
skamonkey@3514
    40
	       	echo -e "No change. Removing useless log.\n"
skamonkey@3514
    41
	        rm $fullfilename
skamonkey@3514
    42
	else
skamonkey@3514
    43
		cp $fullfilename $LOG_DESTINATION
skamonkey@3514
    44
skamonkey@3514
    45
skamonkey@3514
    46
		if [ "$1" == "test" ] ; then
skamonkey@3514
    47
			for j in "${email_test[@]}"
skamonkey@3514
    48
			do
skamonkey@3514
    49
				echo -e "Sending test email to ${j}\n"
skamonkey@3514
    50
				mutt -s "$i GDC update" $j < $fullfilename
skamonkey@3514
    51
			done
skamonkey@3514
    52
skamonkey@3514
    53
			if [ "$2" == "log" ] ; then
skamonkey@3514
    54
				# when testing, don't write to log unless we really want the bot to show it
skamonkey@3514
    55
				echo $(date +%s),${filename},$i >> ~/gdclog
skamonkey@3514
    56
			fi
skamonkey@3514
    57
		else
skamonkey@3514
    58
			# log for pickup by bot
skamonkey@3514
    59
			echo $(date +%s),${filename},$i >> ~/gdclog
skamonkey@3514
    60
skamonkey@3514
    61
			for j in "${email_all[@]}"
skamonkey@3514
    62
			do
skamonkey@3514
    63
				echo -e "Sending email to ${j}\n"
skamonkey@3514
    64
			        mutt -s "$i GDC update" $j < $fullfilename
skamonkey@3514
    65
			done
skamonkey@3514
    66
skamonkey@3514
    67
			varname=email_$lcgame
skamonkey@3514
    68
			eval k=\${#$varname[@]}
skamonkey@3514
    69
skamonkey@3514
    70
			max=($k - 1)
skamonkey@3514
    71
skamonkey@3514
    72
			for (( m=0; m < $max; m++ ));
skamonkey@3514
    73
			do
skamonkey@3514
    74
				eval k=\${$varname[m]}
skamonkey@3514
    75
				echo -e "Sending email to ${k}\n"
skamonkey@3514
    76
				mutt -s "$i GDC update" $k < $fullfilename
skamonkey@3514
    77
			done
skamonkey@3514
    78
		fi  # just testing
skamonkey@3514
    79
skamonkey@3514
    80
	fi
skamonkey@3514
    81
done
skamonkey@3514
    82
skamonkey@3514
    83
rm -f gdc.lock