From 774bc1acc5c307c8d52bfc6176216c5cf5068f8a Mon Sep 17 00:00:00 2001
From: Diego Giovane Pasqualin <dpasqualin@c3sl.ufpr.br>
Date: Wed, 2 Jul 2014 16:34:19 -0300
Subject: [PATCH] le-greeter: Only divert files when needed

Signed-off-by: Diego Giovane Pasqualin <dpasqualin@c3sl.ufpr.br>
---
 le-greeter/package/DEBIAN/control |  2 +-
 le-greeter/package/DEBIAN/preinst | 20 ++++++++++++++++----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/le-greeter/package/DEBIAN/control b/le-greeter/package/DEBIAN/control
index 032059b0..1931aa73 100755
--- a/le-greeter/package/DEBIAN/control
+++ b/le-greeter/package/DEBIAN/control
@@ -1,7 +1,7 @@
 Package: le-greeter
 Priority: important
 Section: main
-Version: 0.1.37
+Version: 0.1.38
 Maintainer: LE Maintainer <le-maintainer@c3sl.ufpr.br>
 Description: Login screen theme and configurations for Linux Educacional 5.0
 Architecture: i386
diff --git a/le-greeter/package/DEBIAN/preinst b/le-greeter/package/DEBIAN/preinst
index 78162d53..2a885822 100755
--- a/le-greeter/package/DEBIAN/preinst
+++ b/le-greeter/package/DEBIAN/preinst
@@ -24,17 +24,29 @@
 RMDIVERTS="/etc/lightdm/lightdm.conf"
 DIVERTS="/usr/sbin/guest-account"
 
+# Check whether file $1 was already diverted.
+# Return true if it was and false otherwise.
+function alreadyDiverted() {
+    file="$1"
+    dpkg-divert --listpackage $file | grep -q le-greeter
+    return $?
+}
+
 # Remove diverts made from previous versions of le-greeter (<0.1.36)
 for file in $RMDIVERTS; do
-    dpkg-divert --remove ${file}
-    if test -e ${file}.lightdm; then
-        rm -f ${file}.lightdm
+    if alreadyDiverted $file; then
+        dpkg-divert --remove ${file}
+        if test -e ${file}.lightdm; then
+            rm -f ${file}.lightdm
+        fi
     fi
 done
 
 # Divert files:
 for file in $DIVERTS; do
-    dpkg-divert --divert ${file}.lightdm --rename ${file}
+    if ! alreadyDiverted $file; then
+        dpkg-divert --divert ${file}.real --rename ${file}
+    fi
 done
 
 exit 0
-- 
GitLab