cb6e0103e7
Co-authored-by: Junie <junie@jetbrains.com>
28 lines
771 B
Bash
28 lines
771 B
Bash
#!/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
|
|
}
|