#!/bin/bash set -u while [[ "${1:-}" == --* ]]; do case "$1" in --root=*|--system|--user|--global|--preset-mode=*|--no-reload|--no-ask-password|--quiet) shift ;; --) shift break ;; *) break ;; esac done service_dir() { local name="${1%.service}" case "$name" in magic) name=magic ;; comma) name=comma ;; ssh|sshd) name=ssh ;; adbd) name=adbd ;; esac if [ -d "/run/runit/services/$name" ]; then printf '/run/runit/services/%s\n' "$name" else printf '/usr/comma/runit/services/%s\n' "$name" fi } case "${1:-}" in "") exit 0 ;; daemon-reload|daemon-reexec|preset|preset-all|enable|disable|reenable|mask|unmask|try-reload-or-restart|reload) exit 0 ;; esac if [ "${1:-}" = "is-enabled" ]; then exit 1 fi if [ "${1:-}" = "daemon-reload" ]; then exit 0 fi if [ "${1:-}" = "is-active" ] && [ "${2:-}" = "--quiet" ]; then case "${3:-}" in magic|magic.service) pgrep -u comma -f "/usr/comma/magic.py" >/dev/null 2>&1 && [ -S /tmp/drmfd.sock ] && exit 0 exit 3 ;; comma|comma.service) /usr/bin/tmux has-session -t comma >/dev/null 2>&1 && exit 0 exit 3 ;; esac sv status "$(service_dir "${3:-}")" >/dev/null 2>&1 && exit 0 exit 3 fi case "${1:-}" in start) exec sv up "$(service_dir "${2:-}")" ;; stop) exec sv down "$(service_dir "${2:-}")" ;; restart) exec sv restart "$(service_dir "${2:-}")" ;; kill) signal=TERM shift if [[ "${1:-}" == --signal=* ]]; then signal="${1#--signal=}" shift fi name="${1:-}" if [ "${name%.service}" = "comma" ]; then pkill "-$signal" -f "/usr/comma/comma.sh" 2>/dev/null || true pkill "-$signal" -f "tmux new-session -s comma" 2>/dev/null || true exit 0 fi exec sv force-stop "$(service_dir "$name")" ;; esac echo "systemctl shim: unsupported command: $*" >&2 exit 1