#!/sbin/openrc-run

name="ocserv"
description="OpenConnect VPN server"
command="/usr/sbin/ocserv"
command_args="--pid-file /run/ocserv.pid --config /etc/ocserv/ocserv.conf"
pidfile="/run/ocserv.pid"
command_background=true

configfile="/etc/ocserv/ocserv.conf"

extra_commands="checkconfig"
description_checkconfig="Checks configuration file for errors"

depend() {
    need net
}

checkconfig() {
    if [ ! -f "$configfile" ]; then
        eerror "Configuration file $configfile not found"
        eerror "Please create it before starting ocserv"
        return 1
    fi

    ebegin "Checking $name configuration"
    "$command" --test-config --config "$configfile" >/dev/null 2>&1
    eend $?
}

start_pre() {
    checkpath --directory --owner ocserv:ocserv --mode 0755 /var/lib/ocserv
    checkconfig || return $?
}

reload() {
    ebegin "Reloading $name configuration"
    start-stop-daemon --signal HUP --pidfile "$pidfile"
    eend $?
}
