#!/bin/sh

set -eu

stop() {
	for s in "${SVDIR:?}"/*; do sv force-stop "${s:?}" >/dev/null 2>&1; done
	kill -HUP "${RUNSVDIRPID:?}"; wait "${RUNSVDIRPID:?}"
}
trap stop EXIT TERM INT HUP

if [ "$#" -gt 0 ] || [ -t 0 ] || [ -t 1 ]; then
	runsvdir -P "${SVDIR:?}" >/dev/null 2>&1 & RUNSVDIRPID=$!
	"$@"
else
	runsvdir -P "${SVDIR:?}" & RUNSVDIRPID=$!
	wait "${RUNSVDIRPID:?}"
fi