diff options
Diffstat (limited to 'misc/grc/doinst.sh')
-rw-r--r-- | misc/grc/doinst.sh | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/misc/grc/doinst.sh b/misc/grc/doinst.sh index 7be6ad2127..b50214f79e 100644 --- a/misc/grc/doinst.sh +++ b/misc/grc/doinst.sh @@ -1,17 +1,25 @@ config() { NEW="$1" 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... } +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/profile.d/grc.csh.new +preserve_perms etc/profile.d/grc.sh.new config etc/grc.conf.new -config etc/profile.d/grc.bashrc.new -config etc/profile.d/grc.zsh.new -config etc/profile.d/grc.fish.new +config etc/default/grc.new |