Release new version 0.19.7
[grml-etc-core.git] / debian / preinst
index 43ccd68..c30e103 100755 (executable)
@@ -4,50 +4,51 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Die Okt 03 20:33:19 CEST 2006 [mika]
 ################################################################################
 
 set -e
 
 # check for files from rm_conffile() in debian/preinst of grml-etc
 # make sure we don't lose any files...
-divert_conffile() {
+backup_conffile() {
     CONFFILE="$1"
 
-    if [ -e "$CONFFILE.dpkg-bak" ]; then
+    if [ -e "$CONFFILE.dpkg-bak" -a -e "$CONFFILE" ]; then
        cp -f "$CONFFILE" "$CONFFILE".original
     else
-       [ -e "$CONFFILE" ] && cp -f "$CONFFILE" "$CONFFILE".grml-etc-core
-#       [ -e "$CONFFILE" ] && cp -f "$CONFFILE" "$CONFFILE".original
+       [ -e "$CONFFILE" ] && cp -f "$CONFFILE" "$CONFFILE".grml-etc-core || true
     fi
 }
 
 case "$1" in
-   install|upgrade|configure)
+    install|upgrade|configure)
+        TMP=$$
         # move files from package grml-etc to grml-etc-core, make sure
         # we don't lose any files...
         for file in /etc/zsh/zlogin /etc/zsh/zprofile /etc/zsh/zshenv /etc/zsh/zshrc \
-                    /etc/zsh/zlogout /etc/vim/vimrc; do
-               divert_conffile $file && \
-               [ -f "$file" ] && rm $file && \
-               dpkg-divert --quiet --add --rename --package grml-etc-core --divert "$file".original $file  && \
-               [ -f "$file".dpkg-bak ]      && mv -f "$file".dpkg-bak "$file"
-               [ -f "$file".grml-etc-core ] && mv -f "$file".grml-etc-core "$file"
-
-               # trying to overwrite `/etc/skel/.zshrc', which is also in package zsh
-               # [ -f /etc/skel/.zshrc ] && \
-               # dpkg-divert --quiet --add --rename --package grml-etc-core --divert /etc/skel/.zshrc.original /etc/skel/.zshrc
+                    /etc/zsh/zlogout /etc/vim/vimrc /etc/tmux.conf; do
+             [ -e "$file".original ] || cp -f "$file" "${file}.tmp.$TMP" 2>/dev/null || true
+             backup_conffile $file && \
+             [ -f "$file" ] && rm $file && \
+             dpkg-divert --quiet --add --rename --package grml-etc-core --divert "$file".original $file  && \
+             [ -f "$file".dpkg-bak ]      && mv -f "$file".dpkg-bak "$file"
+             [ -f "$file".grml-etc-core ] && mv -f "$file".grml-etc-core "$file"
+             [ -e "${file}.tmp.$TMP" ]      && mv -f "${file}.tmp.$TMP" "$file.original"
+
+             # trying to overwrite `/etc/skel/.zshrc', which is also in package zsh
+             # [ -f /etc/skel/.zshrc ] && \
+             # dpkg-divert --quiet --add --rename --package grml-etc-core --divert /etc/skel/.zshrc.original /etc/skel/.zshrc
         done
 
-       if dpkg-divert --list grml-etc-core 2>/dev/null | grep -q /etc/skel/.zshrc.original ; then
-          mv -f /etc/skel/.zshrc.original /etc/skel/.zshrc.original.old && \
-          dpkg-divert --remove --rename --package grml-etc-core /etc/skel/.zshrc
-       fi
+        if dpkg-divert --list grml-etc-core 2>/dev/null | grep -q /etc/skel/.zshrc.original ; then
+            mv -f /etc/skel/.zshrc.original /etc/skel/.zshrc.original.old && \
+            dpkg-divert --remove --rename --package grml-etc-core /etc/skel/.zshrc
+        fi
 
-     ;;
-   *)
-     echo "preinst called with unknown argument $1" >&2
-     exit 1
+    ;;
+    *)
+        echo "preinst called with unknown argument $1" >&2
+        exit 1
 esac
 
 exit 0