#!/bin/bash
set -euo pipefail

# Run a command under REGISTRY lock to avoid concurrent writes.
# Usage: lock-registry.sh -- <command> [args...]

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
LOCK_PATH="${LOCK_PATH:-$ROOT_DIR/.smbatcher/REGISTRY.lock}"

if [[ $# -lt 1 || "$1" != "--" ]]; then
  echo "Usage: $0 -- <command> [args...]" >&2
  exit 1
fi
shift

mkdir -p "$(dirname "$LOCK_PATH")"

if command -v flock >/dev/null 2>&1; then
  exec 9>"$LOCK_PATH"
  flock 9
  "$@"
  flock -u 9
else
  # macOS fallback: use python fcntl
  "$ROOT_DIR/tools/run-python.sh" "$ROOT_DIR/tools/shared/lock-registry.py" "$LOCK_PATH" "$@"
fi
