#!/bin/sh
set -eu
[ -r conf ] && . ./conf
# This assumes that the jail is configured to run /etc/runit/jail via
# exec.start or command, or another command that doesn't fork into the
# background.
name=${PWD##*@}
: "${path:="$(readlink root)"}"
: "${path:="/usr/jails/${name}"}"
: "${OPTS:=}"
cat <<EOF >supervise/jail.conf
path = "${path}";
mount.devfs;
mount.fstab = "${PWD}/supervise/fstab";
exec.start = "/usr/local/etc/runit/jail start";
exec.stop = "/usr/local/etc/runit/jail stop";
exec.clean;
host.hostname = "\$name";
${name} {
EOF
cat jail.conf >>supervise/jail.conf
echo "}" >>supervise/jail.conf
sed -e "s*%%jail%%*${path}*g" fstab >supervise/fstab
mkdir -p "${path}/var/run"
mount -t tmpfs -o size=8m tmpfs "${path}/var/run"
# shellcheck disable=SC2086
exec jail -f supervise/jail.conf ${OPTS} -c "${name}" 2>&1
