#!/bin/sh

. /etc/init.d/functions
. /etc/init.d/globals

chronyd=$(which chronyd)
chronyc=$(which chronyc)

conf=/etc/chrony.conf
pool=$(grep ^pool $conf | cut -d" " -f2)

start() {
    printf "[$BASENAME] Starting ... "
    $chronyd -U
    if [ $? -eq 0 ]; then
        echo "OK"
    else
        echo "FAIL"
    fi

    # Prüfen, ob der User server oder pool nutzt
    server_count=$(grep -c "^server " $conf)
    pool_count=$(grep -c "^pool " $conf)

    # Wenn server genutzt wird → nichts tun
    if [ "$server_count" -gt 0 ]; then
        echo "[$BASENAME] Server-Modus erkannt – keine Pool-Aktionen."
        return 0
    fi

    # Wenn pool genutzt wird → Pool ggf. aktualisieren
    if [ "$pool_count" -gt 0 ]; then
        ntpserver=$(get_setting network_ntpserver)
        ntpserver=${ntpserver:-0.de.pool.ntp.org}

        if [ "$pool" != "$ntpserver" ]; then
            printf "[$BASENAME] Aktualisiere Pool auf $ntpserver ... "
            $chronyc add pool $ntpserver iburst prefer
        else
            echo "[$BASENAME] Pool bereits korrekt."
        fi
        return 0
    fi

    # Wenn weder server noch pool vorhanden → nichts tun
    echo "[$BASENAME] Keine NTP-Quelle definiert – keine Aktion."
}

stop() {
	printf "[$BASENAME] Shutdown ... "
	$chronyc shutdown
}

restart() {
	stop
	start
}

case "$1" in
	start)
		start
	;;
	stop)
		stop
	;;
	restart)
		restart
	;;
	*)
		echo "[$BASENAME] Usage: $0 {start|stop|restart}"
	;;
esac
