# 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/skel/.zshrc /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
- ;;
- *)
- echo "preinst called with unknown argument $1" >&2
- exit 1
+ 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
esac
exit 0