#!/bin/sh

set -xe

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

check_service_works()
{
	local service="$1"
	local i=0

	# make sure that the process stays alive for at least 30 seconds
	while systemctl is-active -q "$service" && [ "$i" -lt 30 ]; do
		sleep 1
		i=$((i + 1))
	done

	systemctl status $service
}

if [ -d /run/systemd/system ]; then
	systemctl enable buildbot@default.service
	systemctl start buildbot@default.service
	check_service_works buildbot@default.service
else
	sed -i 's/MASTER_ENABLED\[1\]=0/MASTER_ENABLED[1]=1/' \
		/etc/default/buildbot
	/etc/init.d/buildbot start default
	/etc/init.d/buildbot status default
fi

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

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