#!/bin/sh
# Installed outside the program tree: a failed update cannot roll this guard back.
set -eu
check_online() {
 HOST_GUARD_PROGRAM=$1
 HOST_GUARD_DATA=$2
 HOST_GUARD_MARKER=$HOST_GUARD_DATA/control/online-only-required
 if [ -e "$HOST_GUARD_MARKER" ] || [ -L "$HOST_GUARD_MARKER" ]; then
  if [ ! -f "$HOST_GUARD_MARKER" ] || [ -L "$HOST_GUARD_MARKER" ] ||
     [ ! -f "$HOST_GUARD_PROGRAM/host-package.json" ] || [ -L "$HOST_GUARD_PROGRAM/host-package.json" ] ||
     ! grep -Eq '"onlineWorkshop"[[:space:]]*:[[:space:]]*1[[:space:]]*[,}]' "$HOST_GUARD_PROGRAM/host-package.json"; then
   echo 'This workshop requires an online-only host. The retained legacy program will not be started. Install a verified online-only package; workshop data and backups are retained.' >&2
   return 1
  fi
 fi
}
if [ "${1:-}" = --check ]; then
 [ "$#" = 3 ] || exit 2
 check_online "$2" "$3"
 exit
fi
[ "$#" -ge 3 ] || exit 2
HOST_GUARD_PROGRAM=$1
shift
if [ "$1" = serve ]; then check_online "$HOST_GUARD_PROGRAM" "$2"; fi
exec "$HOST_GUARD_PROGRAM/workshopplan-host" "$@"
