#!/usr/bin/env bash set -euo pipefail # Common helpers for AI guardrail scripts # Robustly resolve the repository root directory. # Strategy: prefer Git; fallback to marker search upwards; last resort: current dir. resolve_repo_root() { local start start="${1:-$(cd -- "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)}" if command -v git >/dev/null 2>&1; then if git -C "$start" rev-parse --show-toplevel >/dev/null 2>&1; then git -C "$start" rev-parse --show-toplevel return 0 fi fi local dir dir="$(cd "$start" && pwd)" while [ "$dir" != "/" ]; do if [ -f "$dir/gradlew" ] || [ -f "$dir/settings.gradle.kts" ] || [ -d "$dir/.git" ]; then echo "$dir" return 0 fi dir="$(dirname "$dir")" done pwd }