#!/bin/sh
# TerraMaster TOS — arranque / parada del servicio Node embebido
# Instalado en: /usr/local/filmaniakserver/
set -eu
PKG=filmaniakserver
BASE="/usr/local/${PKG}"
export NODE_ENV=production
export DATA_DIR="${BASE}/var/data"
export PORT="${FILMANIAK_PORT:-9106}"
BIN="${BASE}/node/bin/node"
APP="${BASE}/src/index.js"
PID="${BASE}/var/${PKG}.pid"
LOG="${BASE}/var/server.log"

[ -x "${BASE}/usr/bin/node" ] && BIN="${BASE}/usr/bin/node"
if [ ! -x "$BIN" ]; then
  BIN="$(command -v node 2>/dev/null || true)"
fi

start() {
  mkdir -p "$DATA_DIR" "$(dirname "$PID")"
  if [ -f "$PID" ] && kill -0 "$(cat "$PID")" 2>/dev/null; then
    echo "Filmaniak Server already running"
    return 0
  fi
  if [ -z "${BIN:-}" ] || [ ! -x "$BIN" ]; then
    echo "Node.js not found under ${BASE}/node/bin/node" >&2
    return 1
  fi
  if [ ! -f "$APP" ]; then
    echo "App missing: $APP" >&2
    return 1
  fi
  nohup "$BIN" "$APP" >>"$LOG" 2>&1 &
  echo $! >"$PID"
  echo "Filmaniak Server started (PID $(cat "$PID"))"
}

stop() {
  if [ -f "$PID" ]; then
    kill "$(cat "$PID")" 2>/dev/null || true
    rm -f "$PID"
  fi
  pkill -f "${PKG}/src/index.js" 2>/dev/null || true
  echo "Filmaniak Server stopped"
}

status() {
  if [ -f "$PID" ] && kill -0 "$(cat "$PID")" 2>/dev/null; then
    echo "running"
    return 0
  fi
  echo "stopped"
  return 1
}

case "${1:-}" in
  start) start ;;
  stop) stop ;;
  status) status ;;
  restart) stop; start ;;
  *) echo "Usage: $0 {start|stop|status|restart}"; exit 1 ;;
esac
