#!/sbin/openrc-run
# Alpine 5G Router – OpenRC service
# Start: run connect-5g.sh. Stop: bring down WAN interface (optional).
# Rev: 5  (see REVISION in repo root)

description="5G modem connection (connect-5g.sh)"
command="/usr/local/bin/connect-5g.sh"
command_background="yes"
output_log="/var/log/5g-router.log"
error_log="/var/log/5g-router.log"
pidfile="/run/5g-router.pid"
# connect-5g.sh runs run_once then sleep infinity so the process stays up; stop with service 5g-router stop

# Load config for WAN_IF if we need to clean up on stop
[ -f /etc/5g-router.conf ] && . /etc/5g-router.conf
WAN_IF="${WAN_IF:-eth1}"

depend() {
    need net
    after bootmisc
}

# Idempotent start: if already running, succeed instead of "already running" error
start() {
    if [ -f "$pidfile" ] && kill -0 "$(cat "$pidfile")" 2>/dev/null; then
        ebegin "Starting 5g-router"
        eend 0 "Already running"
        return 0
    fi
    ebegin "Starting 5g-router"
    start-stop-daemon --start --background --pidfile "$pidfile" --make-pidfile \
        --stdout "$output_log" --stderr "$error_log" \
        --exec "$command"
    eend $?
}

start_pre() {
    return 0
}

stop_post() {
    # Optionally bring down 5G interface so traffic uses other default route
    ip link set "$WAN_IF" down 2>/dev/null || true
    return 0
}
