#!/bin/sh
set -eu
umask 077

CONF="/etc/router-egress-emergency-refresh.conf"
RUNNER="/usr/local/sbin/router-egress-emergency-refresh.sh"
PLANNER="/usr/local/sbin/router-egress-hmn-plan-top5.sh"
HOOK_INIT="/etc/init.d/router-egress-emergency-decision"
WATCHER_INIT="/etc/init.d/router-egress-health-repair"

fact() {
  printf '__FACT__ %s=%s\n' "$1" "$2"
}

json_block() {
  echo "__JSON_BEGIN__ $1"
  printf '%s\n' "$2"
  echo "__JSON_END__ $1"
}

bool_cmd() {
  if "$@" >/dev/null 2>&1; then
    printf true
  else
    printf false
  fi
}

RAW_LINE="$(
  grep -E \
    '^[[:space:]]*EMERGENCY_COMMIT_ENABLED[[:space:]]*=' \
    "$CONF"
)"

RAW_VALUE="$(
  printf '%s\n' "$RAW_LINE" |
    sed 's/^[^=]*=//;s/[[:space:]]//g'
)"

fact commit_config_line "$RAW_LINE"
fact commit_raw_value "$RAW_VALUE"

fact runner_sha256 "$(
  sha256sum "$RUNNER" |
    sed 's/[[:space:]].*$//'
)"

fact hook_running "$(bool_cmd "$HOOK_INIT" running)"
fact hook_enabled "$(bool_cmd "$HOOK_INIT" enabled)"
fact watcher_running "$(bool_cmd "$WATCHER_INIT" running)"
fact watcher_enabled "$(bool_cmd "$WATCHER_INIT" enabled)"

GUARD="$(
  sed -n '228,237p' "$RUNNER"
)"

echo "__BLOCK_BEGIN__ runner_commit_guard"
printf '%s\n' "$GUARD"
echo "__BLOCK_END__ runner_commit_guard"

RUNNER_JSON="$("$RUNNER" --dry-run)"
PLANNER_JSON="$("$PLANNER")"

json_block runner "$RUNNER_JSON"
json_block planner "$PLANNER_JSON"

fact production_modified false
