#!/bin/sh

# is being run as cronjob, better set PATH
export PATH=/home/xonotic-build/bin:/usr/local/bin:/usr/bin:/bin:/usr/games

mepwd=$PWD
me=$0
if ! lockfile-create "$me"; then
	exit 1
fi
lockfile-touch "$me" & lockpid=$!
trap 'kill $lockpid || true; cd "$mepwd"; lockfile-remove "$me"' EXIT
trap 'exit 1' INT TERM

set -ex
export HOSTS_THAT_ARE_MYSELF="xonotic-build-win32 xonotic-build-win64"
export HOSTS_THAT_ARE_DISABLED=""
ssh xonotic-beta '
	cd autobuild/;
	s0=`date -d "now - 7 days - 12 hours" +%s`;
	s00=`date -d "now - 60 days - 12 hours" +%s`;
	for X in *; do
		[ -f "$X" ] || continue;
		d=${X#Xonotic-};
		d=${d%%[_-.]*};
		[ x"$d" != x"latest" ] || continue;
		w=`date -d $d +%w`;
		s=`date -d $d +%s`;
		if [ "$w" -ne 0 -a "$s" -lt "$s0" -o "$s" -lt "$s00" ]; then
			rm -f "$X";
		fi;
	done
'
cd ~/xonotic-release-build
./all clean --reclone
./all each git checkout HEAD^0
# add all feature branches we want

# map branches that we include:
#   winners in the poll for upcoming CTF maps
#   maps near completion

for b in \
	origin/fruitiex/runningmanctf \
	origin/mintox/geoplanetary
do
	b=$b ./all each sh -c 'if git rev-parse $b >/dev/null 2>&1; then git merge $b; fi'
done
./all update -N
d0=`date +%Y%m%d`
d=$d0
i=1
while HEAD http://xonotic:g-23@beta.xonotic.org/autobuild/"Xonotic-$d.zip"; do
	i=$(($i+1))
	d="$d0"_"$i"
done
RELEASETYPE=beta RELEASEDATE=$d ./all release
for X in Xonotic-$d*.zip; do
	ln -snf "$X" "Xonotic-latest${X#Xonotic-$d}"
done
rsync -vaSHP Xonotic*.zip xonotic-beta:autobuild/
ssh xonotic-beta sh update-rsync.sh "$d"
echo "Finished a new beta build at http://beta.xonotic.org/autobuild/" | $IRCSPAM
cd
