#!/bin/bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
REGISTRY="$ROOT_DIR/.smbatcher/REGISTRY.md"
LOCK_FILE="$ROOT_DIR/.smbatcher/REGISTRY.lock"
LOCK_RUNNER="$ROOT_DIR/tools/shared/lock-registry.sh"

cmd="${1:-help}"
case "$cmd" in
  list)
    grep "|" "$REGISTRY" | tail -n +3
    ;;
  register)
    domain="${2:-}"
    title="${3:-}"
    desc="${4:-}"
    if [ -z "$domain" ] || [ -z "$title" ]; then
      echo "Usage: $0 register <domain> <title> [description]" >&2
      exit 1
    fi
    if [ ! -x "$LOCK_RUNNER" ]; then
      echo "ERROR:lock_registry_missing:$LOCK_RUNNER" >&2
      exit 2
    fi
    LOCK_PATH="$LOCK_FILE" "$LOCK_RUNNER" -- bash -c \
      'printf "| %s | %s | %s | - | - | %s |\n" "$1" "$2" "$3" "$(date -Iseconds)" >> "$4"' \
      _ "$domain" "$title" "${desc:-}" "$REGISTRY"
    ;;
  *)
    echo "Usage: $0 list | register <domain> <title> [description]" >&2
    ;;
esac
