hooks:pre-commit: Check for absolute links too

I don't really want any absolute links here.
This commit is contained in:
2025-05-30 00:51:41 +02:00
parent 88be20672a
commit a37080c948

View File

@@ -42,15 +42,22 @@ if ! git diff-index --check --cached $against --; then
die die
fi fi
# Check that added symlinks are not broken # Check that added symlinks are neither absolute nor broken
git diff --staged --name-only --diff-filter=AR $against \ git diff --staged --name-only --diff-filter=AR $against \
| { | {
broken=0 abort=0
while read -r line; do while read -r line; do
if [ -h "$line" ] && [ ! -e "$line" ]; then [ -h "$line" ] || continue
broken=1
target="$(readlink "$line")"
if [ "${target:0:1}" = "/" ]; then
abort=1
printf "%s\n" "$line: Absolute symlink" >&2
fi
if [ ! -e "$line" ]; then
abort=1
printf "%s\n" "$line: Broken symlink" >&2 printf "%s\n" "$line: Broken symlink" >&2
fi fi
done done
(( ! broken )) || die (( ! abort )) || die
} }