doinst.sh (945B)
1 config() { 2 NEW="$1" 3 OLD="$(dirname $NEW)/$(basename $NEW .new)" 4 # If there's no config file by that name, mv it over: 5 if [ ! -r $OLD ]; then 6 mv $NEW $OLD 7 elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then 8 # toss the redundant copy 9 rm $NEW 10 fi 11 # Otherwise, we leave the .new copy for the admin to consider... 12 } 13 14 preserve_perms() { 15 NEW="$1" 16 OLD="$(dirname $NEW)/$(basename $NEW .new)" 17 if [ -e $OLD ]; then 18 cp -a $OLD ${NEW}.incoming 19 cat $NEW > ${NEW}.incoming 20 mv ${NEW}.incoming $NEW 21 fi 22 config $NEW 23 } 24 25 if ! getent group mirror >/dev/null; then 26 groupadd mirror \ 27 --system 28 fi 29 30 if ! getent passwd mirror >/dev/null; then 31 useradd mirror \ 32 --comment 'Mirror' \ 33 --gid mirror \ 34 --system \ 35 --home-dir /var/empty \ 36 --shell /bin/false \ 37 || true 38 fi 39 40 chown mirror:mirror /var/log/mirror 41 42 preserve_perms etc/rc.d/rc.mirror.new 43 preserve_perms etc/mirror/mirror.toml.new