mirror of
https://github.com/plebbit/seedit.git
synced 2026-04-17 21:58:58 -04:00
85 lines
1.6 KiB
Bash
Executable File
85 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# stop hook: run required repo verification commands for agent-driven changes
|
|
|
|
set -u
|
|
|
|
mode="${AGENT_VERIFY_MODE:-strict}"
|
|
|
|
if [ "${1:-}" = "--advisory" ]; then
|
|
mode="advisory"
|
|
shift
|
|
fi
|
|
|
|
cat > /dev/null
|
|
|
|
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 0
|
|
|
|
cleanup_generated_dir() {
|
|
local path="$1"
|
|
|
|
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
return
|
|
fi
|
|
|
|
if git ls-files --error-unmatch "$path" >/dev/null 2>&1; then
|
|
if git diff --quiet -- "$path"; then
|
|
return
|
|
fi
|
|
|
|
echo "=== git restore --worktree $path ==="
|
|
git restore --worktree -- "$path" 2>&1 || true
|
|
echo ""
|
|
return
|
|
fi
|
|
|
|
if [ -e "$path" ]; then
|
|
echo "=== rm -rf $path ==="
|
|
rm -rf "$path" 2>&1 || true
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
run_required_check() {
|
|
local label="$1"
|
|
shift
|
|
|
|
echo "=== $label ==="
|
|
if "$@" 2>&1; then
|
|
echo ""
|
|
return 0
|
|
fi
|
|
|
|
echo ""
|
|
return 1
|
|
}
|
|
|
|
echo "Running build, lint, type-check, and security audit..."
|
|
echo ""
|
|
|
|
failures=0
|
|
|
|
run_required_check "corepack yarn build" corepack yarn build || failures=1
|
|
run_required_check "corepack yarn lint" corepack yarn lint || failures=1
|
|
run_required_check "corepack yarn type-check" corepack yarn type-check || failures=1
|
|
|
|
echo "=== corepack yarn npm audit ==="
|
|
corepack yarn npm audit 2>&1 || true
|
|
echo ""
|
|
|
|
cleanup_generated_dir build
|
|
cleanup_generated_dir dist
|
|
|
|
if [ "$failures" -ne 0 ]; then
|
|
if [ "$mode" = "advisory" ]; then
|
|
echo "Verification failed, but AGENT_VERIFY_MODE=advisory so the hook is exiting 0."
|
|
exit 0
|
|
fi
|
|
|
|
echo "Verification failed."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Verification complete."
|
|
exit 0
|