#!/usr/bin/env bash
set -Eeuo pipefail

if [[ "${1:-}" != --jobs-finished || $# -ne 1 ]]; then
  printf 'Dieser Neustart unterbricht laufende Backend-Jobs.\n' >&2
  printf 'Erst nach Jobende ausführen: %s --jobs-finished\n' "$0" >&2
  exit 2
fi

config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hermes-stack-maintenance"
# shellcheck disable=SC1090
source "$config_dir/config.env"

exec 8>"${XDG_RUNTIME_DIR:-/tmp}/hermes-stack-hermes-update.lock"
if ! flock -n 8; then
  printf 'Maintenance läuft gerade. Kein Neustart ausgeführt.\n' >&2
  exit 1
fi

"$(dirname -- "${BASH_SOURCE[0]}")/hermes-stack-llama-run" --check

printf 'Starte %s neu …\n' "$LLAMA_SERVICE"
systemctl --user restart "$LLAMA_SERVICE"

printf 'Neustart ausgelöst. Das Modell kann noch laden.\n'
