diff options
-rw-r--r-- | sbopkglint.d/05-basic-sanity.t.sh | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/sbopkglint.d/05-basic-sanity.t.sh b/sbopkglint.d/05-basic-sanity.t.sh index 22dc309..d62238a 100644 --- a/sbopkglint.d/05-basic-sanity.t.sh +++ b/sbopkglint.d/05-basic-sanity.t.sh @@ -169,16 +169,20 @@ done # 20220414 bkw: absolute symlinks used to be an error, but there are just # too many packages that use them. so only flag them if they're broken links. -abslinks="$( find . -type l -lname '/*' )" -[ -n "$abslinks" ] && for i in $abslinks; do - target="$( readlink $i | sed 's,^/*,,' )" - [ -e "$target" ] || brokenabslinks+="$i " +find . -type l -lname '/*' | while read f; do + target="$( readlink "$f" | sed 's,^/*,,' )" + [ -e "$target" ] || ls -bld "$f" > .badlinks.$$ done -brokenlinks="$( find -L . -type l \! -lname '/*' )" +if [ -s .badlinks.$$ ]; then + warn "package contains broken absolute symlinks:" + cat .badlinks.$$ +fi + +rm -f .badlinks.$$ -[ -n "$brokenabslinks" ] && warn "package contains broken absolute symlinks:" && ls -ld $brokenabslinks -[ -n "$brokenlinks" ] && warn "package contains broken relative symlinks:" && ls -ld $brokenlinks +find_warnfiles "package contains broken relative symlinks:" \ + -L . -type l \! -lname '/*' # 20230320 bkw: empty directories. this isn't an error, just a note, and # we ignore any empty dirs under /var because lots of packages need these. |