#!/usr/bin/env bash
# ============================================================
# FC custom runtime 启动入口 —— 框架无关的 Node 参考实现
# ============================================================
# 契约: FC 只要求"一个监听 $PORT 的 HTTP server"。本脚本负责把它拉起来。
# - 换 Node 框架(Express/Fastify/NestJS/Hono...): 只改 s.yaml 的 APP_ENTRY 环境变量
#   指向你的入口文件(如 index.js / dist/main.js),本文件不用动。
# - 换语言(Python/Go...): 替换本文件(如 `exec python app.py`),并在 config.env
#   换 NODE_LAYER 为对应语言的运行时层。
# ------------------------------------------------------------
cd "$(dirname "$0")" || exit 1

# custom.debian* 不自带 node,从挂载的官方 Node 层(/opt)动态定位,不赌固定路径
NODE_BIN="$(command -v node || find /opt -maxdepth 6 -type f -name node 2>/dev/null | head -1)"
if [ -z "$NODE_BIN" ]; then
  echo "[bootstrap] FATAL: node 不在 PATH 也不在 /opt,检查是否挂了 Node 运行时层" >&2
  exit 1
fi

ENTRY="${APP_ENTRY:-dist/main.js}"
echo "[bootstrap] node=$NODE_BIN entry=$ENTRY cwd=$(pwd) port=${PORT:-9000}"
exec "$NODE_BIN" "$ENTRY"
