#!/bin/sh
### BEGIN INIT INFO
# Provides:          whatap-updater
# Required-Start:    $network
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: Whatap Updater
### END INIT INFO

UPDATER="/usr/whatap/infra/infra_agent_patch.sh"
ENVFILE="/usr/whatap/infra/whatap.env"
PIDFILE="/var/run/whatap-updater.pid"
LOG="/var/log/whatap-updater.log"

start() {
    if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
        echo "whatap-updater already running"
        exit 0
    fi

    mkdir -p /var/run 2>/dev/null || true
    mkdir -p /var/log 2>/dev/null || true

    nohup setsid /bin/bash -c "
        echo \$\$ > '$PIDFILE'
        exec '$UPDATER' '$ENVFILE' >> '$LOG' 2>&1
        rc=\$?
        rm -f '$PIDFILE'
        exit \$rc
    " >/dev/null 2>&1 &

    echo "started"
    exit 0
}

stop() {
    if [ -f "$PIDFILE" ]; then
        kill -9 "$(cat "$PIDFILE")" 2>/dev/null || true
        rm -f "$PIDFILE"
        echo "stopped"
        exit 0
    fi
    echo "not running"
    exit 0
}

status() {
    if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
        echo "running (pid $(cat "$PIDFILE"))"
        exit 0
    fi
    echo "not running"
    exit 3
}

case "$1" in
    start) start ;;
    stop) stop ;;
    restart) stop; start ;;
    status) status ;;
    *) echo "Usage: $0 {start|stop|restart|status}"; exit 2 ;;
esac
