xref: /netbsd-src/etc/weekly (revision d0784034e58d838e50e4fab67dddabcfc9427149)
161f28255Scgd#!/bin/sh -
261f28255Scgd#
3*d0784034Skre#	$NetBSD: weekly,v 1.32 2018/09/23 23:12:21 kre Exp $
4ef538c31Smikel#	from: @(#)weekly	8.2 (Berkeley) 1/2/94
561f28255Scgd#
661f28255Scgd
7bd8157b7Smycroftexport PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/libexec
8016b324aSmrgumask 077
9016b324aSmrg
10d1f7e40eSlukemif [ -s /etc/weekly.conf ]; then
11d1f7e40eSlukem	. /etc/weekly.conf
12d1f7e40eSlukemfi
13d1f7e40eSlukem
144f848eeeSchristoshost="$(hostname)"
154f848eeeSchristosdate="$(date)"
163c8a1444Sjmmvrcvar_manpage='weekly.conf(5)'
17d1f7e40eSlukem
18d1f7e40eSlukemecho "To: ${MAILTO:-root}"
19d1f7e40eSlukemecho "Subject: $host weekly output for $date"
20d1f7e40eSlukemecho ""
21d1f7e40eSlukem
228f59ce8eSlukemif [ -f /etc/rc.subr ]; then
238f59ce8eSlukem	. /etc/rc.subr
248f59ce8eSlukemelse
258f59ce8eSlukem	echo "Can't read /etc/rc.subr; aborting."
268f59ce8eSlukem	exit 1;
278f59ce8eSlukemfi
2861f28255Scgd
29d405da7fSmarttiWEEKLYDIR=$(mktemp -d -t _weekly) || exit 1
30ed816845Skim
31ed816845Skimtrap "/bin/rm -rf $WEEKLYDIR ; exit 0" EXIT INT QUIT PIPE
32ed816845Skim
33ed816845Skimif ! cd "$WEEKLYDIR"; then
34c5291a92Sdarcy	echo "Can't cd to $WEEKLYDIR; aborting."
35ed816845Skim	exit 1
36ed816845Skimfi
37ed816845Skim
38ed816845SkimTMP=weekly.$$
39ed816845Skim
4061f28255Scgd#echo ""
4161f28255Scgd#echo "Removing old .o files:"
4261f28255Scgd#find /usr/src -name '*.o' -atime +21 -print -a -exec rm -f {} \;
4361f28255Scgd
4461f28255Scgd# see if /usr/src exists and is local
4561f28255Scgd# before looking there for checked-out files
4661f28255Scgd
47*d0784034Skre#if [ -d /usr/src ] &&
48*d0784034Skre# [ -n "$(find -f /usr/src ! -fstype local -prune -or -type d -print -prune)" ];
4951bed678Scgd#then
50e26a7ce8Skim#	echo ""
51e26a7ce8Skim#	echo "Looking for checked out files:"
5251bed678Scgd#
53d405da7fSmartti#	TDIR=$(mktemp -d -t _checkout) || exit 1
54684e89f3Slukem#	trap "/bin/rm -rf $TDIR ; exit 0" EXIT INT QUIT
554f848eeeSchristos#	for file in $(find -f /usr/src ! -fstype local -prune -or \
564f848eeeSchristos#	    -name 'p.*' -print | egrep 'SCCS/p\.'); do
574f848eeeSchristos#		owner=$(awk '{ print $3 }' $file)
5851bed678Scgd#		echo "$owner	$file"
59684e89f3Slukem#		echo $file >> "$TDIR/$owner"
6051bed678Scgd#	done | sed -e 's,SCCS/p.,,'
614f848eeeSchristos#	if test -n "$(ls $TDIR)"; then
6251bed678Scgd#		for file in $TDIR/*; do
6351bed678Scgd#			sed -e 's,SCCS/p.,,' $file | \
640c70e530Slukem#			    Mail -s 'checked out files' ${file##*/}
6551bed678Scgd#		done
66ef538c31Smikel#	fi
6751bed678Scgd#fi
6861f28255Scgd
69e26a7ce8Skimif checkyesno rebuild_locatedb; then
7061f28255Scgd	echo ""
71e26a7ce8Skim	if [ -f /var/db/locate.database ]; then
7261f28255Scgd		echo "Rebuilding locate database:"
734c881187Scgd		chmod 644 /var/db/locate.database
74357a0baaSkleink		chown nobody:nobody /var/db/locate.database
756b00b0a3Slukem		(cd / && nice -5 su -m nobody -c /usr/libexec/locate.updatedb 2>/dev/null)
76357a0baaSkleink		chown root:wheel /var/db/locate.database
774c881187Scgd	else
784c881187Scgd		echo "Not rebuilding locate database; no /var/db/locate.database"
794c881187Scgd	fi
80e26a7ce8Skimfi
81645ee407Sad
82410d0f43Sjoergif checkyesno rebuild_mandb; then
83410d0f43Sjoerg	echo ""
84*d0784034Skre	if [ -f /etc/man.conf ] && [ -x /usr/sbin/makemandb ]; then
85410d0f43Sjoerg		echo "Rebuilding man page index:"
86c9ea1856Swiz		(umask 022; nice -n 5 /usr/sbin/makemandb -f -Q)
87410d0f43Sjoerg	else
88410d0f43Sjoerg		echo "Not rebuilding man page index"
89410d0f43Sjoerg	fi
90410d0f43Sjoergfi
91410d0f43Sjoerg
92645ee407Sadif [ -f /etc/weekly.local ]; then
93ed816845Skim	. /etc/weekly.local > $TMP 2>&1
94ed816845Skim	if [ -s $TMP ] ; then
95ed816845Skim		printf "\nRunning /etc/weekly.local:\n"
96ed816845Skim		cat $TMP
97ed816845Skim	fi
98ed816845Skim	rm -f $TMP
99645ee407Sadfi
100