diff options
Diffstat (limited to 'debian/cron.daily')
-rw-r--r-- | debian/cron.daily | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/debian/cron.daily b/debian/cron.daily new file mode 100644 index 0000000..4dd8ae0 --- /dev/null +++ b/debian/cron.daily @@ -0,0 +1,50 @@ +#!/bin/sh +# +# man-db cron daily + +set -e + +if [ -d /run/systemd/system ]; then + # Skip in favour of systemd timer. + exit 0 +fi + +# This should be set by cron, but apparently isn't always; see +# https://bugs.debian.org/209185. Add fallbacks so that start-stop-daemon +# can be found. +export PATH="$PATH:/usr/local/sbin:/usr/sbin:/sbin" + +iosched_idle= +# Don't try to change I/O priority in a vserver or OpenVZ. +if ! grep -Eq '(envID|VxID):.*[1-9]' /proc/self/status && \ + { [ ! -d /proc/vz ] || [ -d /proc/bc ]; }; then + iosched_idle='--iosched idle' +fi + +if ! [ -d /var/cache/man ]; then + # Recover from deletion, per FHS. + install -d -o man -g man -m 0755 /var/cache/man +fi + +# expunge old catman pages which have not been read in a week +if [ -d /var/cache/man ]; then + cd / + # shellcheck disable=SC2086 + start-stop-daemon --start --pidfile /dev/null --startas /bin/sh \ + --oknodo --chuid man $iosched_idle -- -c \ + "find /var/cache/man -type f -name '*.gz' -atime +6 -print0 | \ + xargs -r0 rm -f" +fi + +# regenerate man database +if [ -x /usr/bin/mandb ]; then + # --pidfile /dev/null so it always starts; mandb isn't really a daemon, + # but we want to start it like one. + # shellcheck disable=SC2086 + start-stop-daemon --start --pidfile /dev/null \ + --startas /usr/bin/mandb --oknodo --chuid man \ + $iosched_idle \ + -- --no-purge --quiet +fi + +exit 0 |