#!/bin/bash
# ==========================================
# p2pee-proxy 服务生命周期管理
# 由飞牛 fnOS 调用: main start|stop|status
# ==========================================

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# shellcheck source=proxy-lib.sh
. "${SCRIPT_DIR}/proxy-lib.sh"

detect_paths
mkdir -p "${PKGVAR}" 2>/dev/null || true

case "$1" in
    start)
        # 应用中心"启用"时调用。CGI 模式下应用无常驻服务，
        # 穿透进程由用户在 Web 界面配置后手动启动。
        # 因此这里无论是否已配置 Key/目标，都不能返回失败，
        # 否则应用中心会报"本地应用启动失败"导致无法启用。
        if ! status_proxy; then
            if ! start_proxy; then
                log_msg "启用时未拉起穿透进程（尚未配置或启动失败），可在 Web 界面配置后启动"
            fi
        fi
        exit 0
        ;;
    stop)
        stop_proxy
        exit 0
        ;;
    status)
        # CGI 按需启动型应用：应用本身（CGI 入口）始终可用，
        # 穿透进程只是业务子进程。若按穿透进程状态返回 3，
        # 飞牛会认为应用已停止而回收桌面窗口（表现为 UI"闪退"）。
        # 因此这里始终返回 0，穿透进程的真实状态由 Web 界面展示。
        exit 0
        ;;
    *)
        exit 1
        ;;
esac
