#!/bin/sh
# Aperture AkroCal: a free and efficient digital schedule utility
# https://www.aperture.akron.oh.us/~akrocal/
#
# Copyright (C) 2025 Anton McClure <asm@aperture.akron.oh.us>
# All rights reserved.
. /etc/rc.subr
name="akrocal"
rcvar="akrocal_enable"
load_rc_config $name
: ${akrocal_enable:="NO"}
pidfile="/var/run/${name}.pid"
xinit_cmd="/usr/local/bin/xinit"
xorg_cmd="/usr/local/bin/Xorg"
akrocal_cmd="/usr/local/bin/akrocal"
command="/usr/sbin/daemon"
procname="${xinit_cmd}"
command_args="-p ${pidfile} ${procname} ${akrocal_cmd} -- ${xorg_cmd} :0 vt9 -nolisten tcp -novtswitch"
start_precmd="akrocal_prestart"
stop_postcmd="akrocal_poststop"
akrocal_prestart() {
    export DISPLAY=:0
    if pgrep -f "[X]org :0" > /dev/null; then
        echo "Warning: Xorg already running on :0. Attempting to stop it."
        pkill -f "[X]org :0"
        sleep 2
    fi
}
akrocal_poststop() {
    if pgrep -f "[X]org :0" > /dev/null; then
        echo "Cleaning up Xorg..."
        pkill -f "[X]org :0"
    fi
    rm -f ${pidfile}
}
run_rc_command "$1"
