mirror of
https://git.FreeBSD.org/src.git
synced 2024-11-24 07:40:52 +00:00
stale-symlink-buildworld.sh: a script to check for stale symlinks on a FreeBSD system
You can run the script before or after `make installworld' You may also check your local ports with: env STALE_SYMLINK_BUILDWORLD_DIRS=/usr/local ./stale-symlink-buildworld.sh PR: 276235
This commit is contained in:
parent
8c108b341c
commit
e880dd644f
53
tools/build/stale-symlink-buildworld.sh
Executable file
53
tools/build/stale-symlink-buildworld.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
# Copyright (c) Feb 2024 Wolfram Schneider <wosch@FreeBSD.org>
|
||||
# SPDX-License-Identifier: BSD-2-Clause
|
||||
#
|
||||
# stale-symlink-buildworld.sh - check for stale symlinks on a FreeBSD system
|
||||
#
|
||||
# You can run the script before or after `make installworld'
|
||||
#
|
||||
|
||||
PATH="/bin:/usr/bin"; export PATH
|
||||
|
||||
: ${ncpu=$(nproc)}
|
||||
|
||||
# check other directories as well
|
||||
: ${STALE_SYMLINK_BUILDWORLD_DIRS="/usr/obj"}
|
||||
|
||||
trap 'rm -f $script' 0
|
||||
script=$(mktemp -t stale-symlink)
|
||||
chmod u+x $script
|
||||
|
||||
# create a temporary shell script to check for stale symbolic links
|
||||
cat << 'EOF' > $script
|
||||
file="$1"
|
||||
|
||||
if [ ! -e "$file" ]; then
|
||||
echo "stale symlink detected: $(ls -ld $file)" >&2
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
EOF
|
||||
|
||||
find -s -H \
|
||||
/bin \
|
||||
/boot \
|
||||
/etc \
|
||||
/lib \
|
||||
/libexec \
|
||||
/sbin \
|
||||
/usr/bin \
|
||||
/usr/include \
|
||||
/usr/lib \
|
||||
/usr/lib32 \
|
||||
/usr/libdata \
|
||||
/usr/libexec \
|
||||
/usr/sbin \
|
||||
/usr/src \
|
||||
/usr/share \
|
||||
$STALE_SYMLINK_BUILDWORLD_DIRS \
|
||||
-type l \
|
||||
-print0 | xargs -n1 -0 -P${ncpu} $script
|
||||
|
||||
#EOF
|
Loading…
Reference in New Issue
Block a user