#!/bin/sh

set -x

arch="$(dpkg --print-architecture)"
case "$arch" in
	arm64)
		;;
	*)
		set -e
esac

buildbot create-master /var/lib/buildbot/masters/default
mv /var/lib/buildbot/masters/default/master.cfg.sample \
	/var/lib/buildbot/masters/default/master.cfg
chown buildbot: -R /var/lib/buildbot/masters/default

if [ -x /bin/systemctl ]; then
	systemctl enable buildmaster@default.service
	if ! systemctl start buildmaster@default.service; then
		echo "systemctl start buildmaster@default.service failed"
		systemctl status buildmaster@default.service || true
		journalctl -xe || true
		case "$arch" in
		    armhf|arm64)
			echo "ignoring failure on $arch"
			exit 0
			;;
		    *)
			exit 1
			;;
		esac
	fi
	systemctl status buildmaster@default.service
else
	sed -i 's/MASTER_ENABLED\[1\]=0/MASTER_ENABLED[1]=1/' \
		/etc/default/buildmaster
	/etc/init.d/buildmaster start
	/etc/init.d/buildmaster status
fi

buildbot-worker create-worker \
	/var/lib/buildbot/workers/default localhost example-worker pass
chown buildbot: -R /var/lib/buildbot/workers/default

if [ -x /bin/systemctl ]; then
	systemctl enable buildbot-worker@default.service
	systemctl start buildbot-worker@default.service
	systemctl status buildbot-worker@default.service
	systemctl restart buildmaster@default.service
	systemctl status buildmaster@default.service
	systemctl stop buildbot-worker@default.service
	systemctl stop buildmaster@default.service
else
	sed -i 's/WORKER_ENABLED\[1\]=0/WORKER_ENABLED[1]=1/' \
		/etc/default/buildbot-worker
	/etc/init.d/buildbot-worker start
	/etc/init.d/buildbot-worker status
	/etc/init.d/buildmaster restart
	/etc/init.d/buildmaster status
	/etc/init.d/buildbot-worker stop
	/etc/init.d/buildmaster stop
fi
