summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>2010-10-31 02:36:05 +0000
committerwollman <wollman@FreeBSD.org>2010-10-31 02:36:05 +0000
commit46e60c57ece3af2116459edfe00451a09ff94261 (patch)
tree3ae2a8528b8371d88fbc30725a575d10169d9d24
parentc1d60ad229a01416e0ebb34d5cd4bf9c1ed9479a (diff)
downloadFreeBSD-src-46e60c57ece3af2116459edfe00451a09ff94261.zip
FreeBSD-src-46e60c57ece3af2116459edfe00451a09ff94261.tar.gz
Make it possible to exclude directories by name no matter where they
are in the filesystem from the locate database. By default, exclude ".zfs" directories, as users who who have set snapdir=visible and are taking frequent snapshots most likely do not want the snapshots included in the locate database.
-rw-r--r--usr.bin/locate/locate/locate.rc5
-rw-r--r--usr.bin/locate/locate/updatedb.sh9
2 files changed, 13 insertions, 1 deletions
diff --git a/usr.bin/locate/locate/locate.rc b/usr.bin/locate/locate/locate.rc
index 54cc6d8..3ed0c38 100644
--- a/usr.bin/locate/locate/locate.rc
+++ b/usr.bin/locate/locate/locate.rc
@@ -15,9 +15,12 @@
# directories to be put in the database
#SEARCHPATHS="/"
-# directories unwanted in output
+# paths unwanted in output
#PRUNEPATHS="/tmp /usr/tmp /var/tmp /var/db/portsnap"
+# directories unwanted in output
+#PRUNEDIRS=".zfs"
+
# filesystems allowed. Beware: a non-listed filesystem will be pruned
# and if the SEARCHPATHS starts in such a filesystem locate will build
# an empty database.
diff --git a/usr.bin/locate/locate/updatedb.sh b/usr.bin/locate/locate/updatedb.sh
index d828438..619180e 100644
--- a/usr.bin/locate/locate/updatedb.sh
+++ b/usr.bin/locate/locate/updatedb.sh
@@ -52,6 +52,7 @@ PATH=$LIBEXECDIR:/bin:/usr/bin:$PATH; export PATH
: ${FCODES:=/var/db/locate.database} # the database
: ${SEARCHPATHS:="/"} # directories to be put in the database
: ${PRUNEPATHS:="/tmp /usr/tmp /var/tmp /var/db/portsnap"} # unwanted directories
+: ${PRUNEDIRS:=".zfs"} # unwanted directories, in any parent
: ${FILESYSTEMS:="$(lsvfs | tail -n +3 | \
egrep -vw "loopback|network|synthetic|read-only|0" | \
cut -d " " -f1)"} # allowed filesystems
@@ -79,6 +80,14 @@ case X"$PRUNEPATHS" in
done;;
esac
+case X"$PRUNEDIRS" in
+ X) ;;
+ *) for dir in $PRUNEDIRS
+ do
+ excludes="$excludes -or -name $dir -type d -prune"
+ done;;
+esac
+
tmp=$TMPDIR/_updatedb$$
trap 'rm -f $tmp; rmdir $TMPDIR' 0 1 2 3 5 10 15
OpenPOWER on IntegriCloud