84 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/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
 | 
						|
 | 
						|
	./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
 |