slackware-current/source/a/dcron/run-parts
Patrick J Volkerding 6882ad8999 Fri Aug 5 21:04:39 UTC 2022
a/dcron-4.5-x86_64-12.txz:  Rebuilt.
  Rebase the run-parts script on the latest version from Fedora's crontabs
  package. Thanks to avian.
a/elilo-3.16-x86_64-13.txz:  Rebuilt.
  Patched to disable the Confidential Computing blob for SEV-SNP, which
  fixes booting a 5.19 kernel with the EFI stub enabled. If you use elilo,
  be sure to either run eliloconfig again or manually copy (and rename) the
  proper elilo binary to your EFI System Partition.
  Thanks to PiterPunk.
a/sysklogd-2.4.2-x86_64-1.txz:  Upgraded.
ap/most-5.2.0-x86_64-1.txz:  Upgraded.
d/cmake-3.24.0-x86_64-1.txz:  Upgraded.
x/ibus-table-1.16.10-x86_64-1.txz:  Upgraded.
extra/brltty/brltty-6.5-x86_64-1.txz:  Upgraded.
extra/php80/php80-8.0.22-x86_64-1.txz:  Upgraded.
2022-08-06 07:00:16 +02:00

100 lines
2 KiB
Bash

#!/bin/bash
# run-parts - concept taken from Debian
# keep going when something fails
set +e
if [ $# -lt 1 ]; then
echo "Usage: run-parts [--list | --test] <dir>"
exit 1
fi
while [ $# -gt 1 ]; do
case $1 in
--list)
list=1
shift
break
;;
--test)
test=1
shift
break
;;
--)
# -- end of options
shift
break
;;
*)
# directory
break
;;
esac
done
if [ ! -d $1 ]; then
echo "Not a directory: $1"
exit 1
fi
if [ -f /etc/default/run-parts ]; then
. /etc/default/run-parts
fi
# Ignore *~ and *, scripts
for i in $(LC_ALL=C; echo ${1%/}/*[^~,]) ; do
[ -d $i ] && continue
# Don't run *.{bak,new,rpmsave,rpmorig,rpmnew,swp,cfsaved} scripts
[ "${i%.bak}" != "${i}" ] && continue
[ "${i%.new}" != "${i}" ] && continue
[ "${i%.rpmsave}" != "${i}" ] && continue
[ "${i%.rpmorig}" != "${i}" ] && continue
[ "${i%.rpmnew}" != "${i}" ] && continue
[ "${i%.swp}" != "${i}" ] && continue
[ "${i%.cfsaved}" != "${i}" ] && continue
[ "${i%,v}" != "${i}" ] && continue
# jobs.deny prevents specific files from being executed
# jobs.allow prohibits all non-named jobs from being run.
# can be used in conjunction but there's no reason to do so.
if [ -r $1/jobs.deny ]; then
grep -q "^$(basename $i)$" $1/jobs.deny && continue
fi
if [ -r $1/jobs.allow ]; then
grep -q "^$(basename $i)$" $1/jobs.allow || continue
fi
if [ -e $i ]; then
if [ -r $1/whitelist ]; then
grep -q "^$(basename $i)$" $1/whitelist && continue
fi
if [ ${list:-0} = 1 ]; then
echo $i;
elif [ -x $i ]; then
if [ ${test:-0} = 1 ]; then
echo $i;
continue
fi
if [ "$RANDOMIZE" != "" ]; then
let "rtime = $RANDOM"
if [ "$RANDOMTIME" != "" ]; then
let "rtime %= $RANDOMTIME"
else
let "rtime %= 300"
fi
sleep $rtime
fi
# run executable files
logger -p cron.notice -t "run-parts[$$]" "($1) starting $(basename $i)"
$i 2>&1 | sed '1i\
'"$i"':\
'
logger -p cron.notice -t "run-parts[$$]" "($1) finished $(basename $i)"
fi
fi
done
exit 0