summaryrefslogtreecommitdiff
path: root/source/a/dcron/doinst.sh
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2018-06-13 05:43:00 +0000
committerEric Hameleers <alien@slackware.com>2018-06-13 09:44:21 +0200
commitd8095c1e90c817c5c1bd4cbb892be7218946279b (patch)
tree031d60b6fcf278de9783be42a3a77d253a03a1ea /source/a/dcron/doinst.sh
parent2c20c6847e0caa3b62f6e5a0506790393c141932 (diff)
downloadcurrent-d8095c1e90c817c5c1bd4cbb892be7218946279b.tar.gz
Wed Jun 13 05:43:00 UTC 201820180613054300
a/dcron-4.5-x86_64-7.txz: Rebuilt. Added init script and defaults file. Moved TMPDIR to /run/cron. Thanks to Robby Workman and shasta. a/efibootmgr-16-x86_64-1.txz: Upgraded. a/efivar-36-x86_64-1.txz: Added. a/elilo-3.16-x86_64-7.txz: Rebuilt. a/glibc-solibs-2.27-x86_64-4.txz: Rebuilt. Don't restart init in the install script, let rc.6 handle it. a/haveged-1.9.2-x86_64-1.txz: Added. a/pkgtools-15.0-noarch-18.txz: Rebuilt. setup.services: add support for rc.atd and rc.crond a/sysvinit-scripts-2.1-noarch-10.txz: Rebuilt. rc.6: restart init when shutting down - this prevents it from holding file handles to removed/upgraded versions of the glibc shared libraries which would interfere with shutdown. rc.K: use full path to telinit rc.M: start rc.atd and rc.crond rc.M: don't remove cron tempfiles (moved to /run/cron) rc.S: start rc.haveged ap/at-3.1.20-x86_64-3.txz: Rebuilt. Added init script and defaults file. l/glibc-2.27-x86_64-4.txz: Rebuilt. Don't restart init in the install script, let rc.6 handle it. l/glibc-i18n-2.27-x86_64-4.txz: Rebuilt. l/glibc-profile-2.27-x86_64-4.txz: Rebuilt. l/gnu-efi-3.0.8-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/a/dcron/doinst.sh')
-rw-r--r--source/a/dcron/doinst.sh35
1 files changed, 30 insertions, 5 deletions
diff --git a/source/a/dcron/doinst.sh b/source/a/dcron/doinst.sh
index ce8dc7f3..0d5f1ee8 100644
--- a/source/a/dcron/doinst.sh
+++ b/source/a/dcron/doinst.sh
@@ -1,5 +1,30 @@
-if [ ! -r var/spool/cron/crontabs/root ]; then
- mv var/spool/cron/crontabs/root.new var/spool/cron/crontabs/root
-else
- rm -f var/spool/cron/crontabs/root.new
-fi
+config() {
+ for infile in $1; do
+ NEW="$infile"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+ done
+}
+
+preserve_perms() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ if [ -e $OLD ]; then
+ cp -a $OLD ${NEW}.incoming
+ cat $NEW > ${NEW}.incoming
+ mv ${NEW}.incoming $NEW
+ fi
+ config $NEW
+}
+
+preserve_perms etc/rc.d/rc.crond.new
+config etc/default/crond.new
+config var/spool/cron/crontabs/root.new
+rm -f var/spool/cron/crontabs/root.new