a#!/usr/bin/env bash
set -euo pipefail

source "$(dirname "$0")/rules.engine.sh"
load_rules "$GIT_ROOT/config/rules.menu"

exit_keys="${RULES[exit_keys]}"
numeric_disallowed="${RULES[numeric_exit_disallowed]}"

menu_file="$GIT_ROOT/bin/git.util.sh"

if [[ "$numeric_disallowed" == "true" ]]; then
    if grep -q "exit 0" "$menu_file"; then
        echo "[MENU ERROR] Numeric exit detected."
        exit 1
    fi
fi

IFS=',' read -ra allowed <<< "$exit_keys"
for key in "${allowed[@]}"; do
    if ! grep -q "case.*$key" "$menu_file"; then
        echo "[MENU ERROR] Missing exit key: $key"
        exit 1
    fi
done

echo "[OK] Menu audit passed."

