20 lines
557 B
Bash
Executable File
20 lines
557 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Portée des contrôles: all (défaut) ou changed
|
|
export SCOPE="${SCOPE:-all}"
|
|
|
|
list_changed_paths() {
|
|
# Renvoie la liste des chemins modifiés (HEAD~1..HEAD), ou vide si non dispo
|
|
git -C "${TARGET_DIR:-.}" diff --name-only HEAD~1..HEAD 2>/dev/null || true
|
|
}
|
|
|
|
is_path_changed() {
|
|
local path="$1"
|
|
if [[ "$SCOPE" != "changed" ]]; then return 0; fi
|
|
local changed
|
|
changed=$(list_changed_paths)
|
|
if [[ -z "$changed" ]]; then return 0; fi
|
|
grep -q "^${path%/}\(/\|$\)" <<<"$changed" && return 0 || return 1
|
|
}
|