#!/bin/sh -e

if [ -z "$1" ] || [ "$1" = "help" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
  availsubcommands="$(find /usr/lib/s6-policy-common/bin/ -name "svctl-*" -not -name "*.unlocked" -printf '%f\n' | sort | sed 's/svctl-//')"
  printf "svctl: usage: svctl subcommand subargs. Valid subcommands:" 1>&2
  printf "%s\n" "$availsubcommands" | tr '\n' ',' | sed 's/,$/\n/' | sed 's/,/, /g' 1>&2
  exit 100
fi

# umask 022 (1.2.7): alles, was svctl anlegt -- das Kompilat, die Live-Kopie
# durch s6-rc-update, Links, contents.d-Eintraege, Masken --, hat Leser, die
# nicht root sind: s6-fdholderd laeuft als sysfdh und liest data/rules bei jeder
# Verbindung, aep-zabbix-checks liest als zabbix. Die Rechte duerfen nicht von
# der Sitzung abhaengen, die svctl aufruft. Gemessen am 23.09.2026 auf
# srv-mgmt-tick1-1: ein Puppet-Lauf aus einer Sitzung mit umask 077 erzeugte ein
# Kompilat mit 700/600, der fdholder antwortete danach "Connection reset", jede
# Log-Pipe fehlte, zabbix-agent und kubelet starben ohne Logzeile.
umask 022

subcommand="$1"

if [ ! -x /usr/lib/s6-policy-common/bin/svctl-"$subcommand" ]; then
  echo "unknown subcommand: $subcommand"
  exit 100
fi

shift
exec /usr/lib/s6-policy-common/bin/svctl-"$subcommand" "$@"
