From f882709ddd771a0e8417ce36d413367fffe19a10 Mon Sep 17 00:00:00 2001
From: Dominik Daehn <isnoguter@live.de>
Date: Wed, 19 Jun 2019 07:23:38 +0200
Subject: [PATCH] save and restore previous custom dir

---
 OPSI/postinst | 16 ++++++++++++++++
 OPSI/preinst  | 24 ++++++++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git a/OPSI/postinst b/OPSI/postinst
index a8e33fc..b55179e 100644
--- a/OPSI/postinst
+++ b/OPSI/postinst
@@ -7,3 +7,19 @@
 #   PRODUCT_ID: id of the current product
 #   CLIENT_DATA_DIR: directory which contains the installed client data
 #
+
+TMP_DIR=${CLIENT_DATA_DIR}/../${PRODUCT_ID}.tmp
+
+if [ -d $TMP_DIR ]; then
+	echo 'Restoring previous directories...'
+	
+	echo 'Restoring previous custom dir...'
+	if [ -d $TMP_DIR/custom ]; then
+		test -e $CLIENT_DATA_DIR/custom && rm -rf $CLIENT_DATA_DIR/custom
+		echo "   moving $TMP_DIR/custom to $CLIENT_DATA_DIR/"
+		mv $TMP_DIR/custom $CLIENT_DATA_DIR/ || exit 1	
+	fi
+fi
+
+echo "Removing temporary files..."
+rm -rf $TMP_DIR
diff --git a/OPSI/preinst b/OPSI/preinst
index 15a5320..34674a6 100644
--- a/OPSI/preinst
+++ b/OPSI/preinst
@@ -7,3 +7,27 @@
 #   PRODUCT_ID: id of the current product
 #   CLIENT_DATA_DIR: directory where client data will be installed
 #
+
+TMP_DIR=${CLIENT_DATA_DIR}/../${PRODUCT_ID}.tmp
+
+if [ -d $TMP_DIR ]; then
+	echo "Temporary directory $TMP_DIR already exist, aborting!" 1>&2
+	exit 1
+fi
+
+[ ! -d $CLIENT_DATA_DIR ] && mkdir $CLIENT_DATA_DIR
+mkdir $TMP_DIR
+
+if [ -d $CLIENT_DATA_DIR ]; then
+	echo "Saving previous directories..."
+	for dirname in custom ; do
+		for path in $CLIENT_DATA_DIR/$dirname; do
+			if [ -e $path ]; then
+				echo "   moving $path to $TMP_DIR"
+				mv $path $TMP_DIR/ || exit 1
+			fi
+		done
+	done
+fi
+
+exit 0