#!/bin/bash
#
# Octop — FnOS 生命周期管理（docker-project）
# start/stop 由 fnOS 应用中心根据 config/resource 的 docker-project 自动管理；
# start 仍先恢复 compose 插值用的 .env（target/ 被替换后从 @appdata 拷回），
# 并把卷指到 TRIM_DATA_SHARE_PATHS，避免重启后再次走首次配置。
#

_OCTOP_COMMON="$(dirname "$0")/common.sh"
[ -f "$_OCTOP_COMMON" ] || _OCTOP_COMMON="/var/apps/octop/cmd/common.sh"
[ -f "$_OCTOP_COMMON" ] && source "$_OCTOP_COMMON"

FILE_PATH="${TRIM_APPDEST}/docker/docker-compose.yaml"
ENV_FILE="${TRIM_APPDEST:-/var/apps/octop/target}/docker/.env"

ensure_persist() {
    if type octop_prepare_docker_persist >/dev/null 2>&1; then
        octop_prepare_docker_persist "$ENV_FILE" >/dev/null
    fi
}

is_docker_running() {
    DOCKER_NAME=""
    if [ -f "$FILE_PATH" ]; then
        DOCKER_NAME=$(grep "container_name" "$FILE_PATH" | awk -F ':' '{print $2}' | xargs)
    fi
    if [ -n "$DOCKER_NAME" ]; then
        docker inspect "$DOCKER_NAME" 2>/dev/null | grep -q "\"Status\": \"running\"," || return 1
        return 0
    fi
    return 1
}

case $1 in
start)
    ensure_persist
    # docker 应用由 appcenter 启动
    exit 0
    ;;
stop)
    # docker 应用由 appcenter 停止
    exit 0
    ;;
status)
    if is_docker_running; then
        exit 0
    else
        exit 3
    fi
    ;;
*)
    exit 1
    ;;
esac
