#!/bin/bash
# Docker镜像导入工具 - 主控脚本
PID_FILE="${TRIM_PKGVAR}/server.pid"
LOG_FILE="${TRIM_PKGVAR}/server.log"

start() {
    # 检查是否已在运行
    if [ -f "$PID_FILE" ]; then
        pid=$(cat "$PID_FILE" | tr -d '[:space:]')
        if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
            echo "Docker镜像导入服务已在运行中 (PID: $pid)"
            exit 0
        fi
        rm -f "$PID_FILE"
    fi

    # 读取安装时配置的端口，默认12312
    SERVICE_PORT=$(cat "${TRIM_PKGETC}/service_port" 2>/dev/null || echo "12312")
    export TRIM_SERVICE_PORT="${SERVICE_PORT}"

    # 启动Python HTTP服务器
    cd "${TRIM_APPDEST}"
    nohup python3 server.py >> "$LOG_FILE" 2>&1 &
    echo $! > "$PID_FILE"

    echo "Docker镜像导入服务已启动"
    exit 0
}

stop() {
    if [ -f "$PID_FILE" ]; then
        pid=$(cat "$PID_FILE" | tr -d '[:space:]')
        if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
            kill "$pid" 2>/dev/null
            sleep 1
            kill -0 "$pid" 2>/dev/null && kill -9 "$pid" 2>/dev/null
            echo "Docker镜像导入服务已停止"
        fi
        rm -f "$PID_FILE"
    fi
    exit 0
}

status() {
    if [ -f "$PID_FILE" ]; then
        pid=$(cat "$PID_FILE" | tr -d '[:space:]')
        if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
            exit 0
        fi
        rm -f "$PID_FILE"
    fi
    exit 3
}

case "$1" in
    start) start ;;
    stop) stop ;;
    status) status ;;
    *) exit 1 ;;
esac
