#!/bin/sh
# SPDX-License-Identifier: CC0-1.0
#
# This script is called by "systemctl enable/disable" when the given unit is a
# SysV init.d script. It needs to call the distribution's mechanism for
# enabling/disabling those, such as chkconfig, update-rc.d, or similar. This
# can optionally take a --root argument for enabling a SysV init script
# in a chroot or similar.
set -e

usage() {
    echo "Usage: $0 [--root=path] enable|disable|is-enabled <sysv script name>" >&2
    exit 1
}

unset ROOT

# parse options
eval set -- "$(getopt -o r: --long root: -- "$@")"
while true; do
    case "$1" in
        -r|--root)
            ROOT="$2"
            shift 2 ;;
        --) shift ; break ;;
        *) usage ;;
    esac
done

NAME="$2"
[ -n "$NAME" ] || usage

case "$1" in
    enable)
        # call the command to enable SysV init script $NAME here
        # (consider optional $ROOT)
        echo "IMPLEMENT ME: enabling SysV init.d script $NAME"
        ;;
    disable)
        # call the command to disable SysV init script $NAME here
        # (consider optional $ROOT)
        echo "IMPLEMENT ME: disabling SysV init.d script $NAME"
        ;;
    is-enabled)
        # exit with 0 if $NAME is enabled, non-zero if it is disabled
        # (consider optional $ROOT)
        echo "IMPLEMENT ME: checking SysV init.d script $NAME"
        ;;
    *)
        usage ;;
esac
