From a6bf8fdbcc7d2a53584e4da0fe38feb1157237d1 Mon Sep 17 00:00:00 2001
From: Dominik Daehn <isnoguter@live.de>
Date: Wed, 19 Jun 2019 07:24:29 +0200
Subject: [PATCH] change LogDir; add ProductProperty desktoplink,
 custom-post-install, custom-post-uninstall

---
 CLIENT_DATA/delsub3264.ins    | 20 ++++++++++--
 CLIENT_DATA/setup3264.ins     | 59 ++++++++++++++++++++++++++++++++++-
 CLIENT_DATA/uninstall3264.ins |  2 +-
 OPSI/control                  | 24 ++++++++++++++
 4 files changed, 100 insertions(+), 5 deletions(-)

diff --git a/CLIENT_DATA/delsub3264.ins b/CLIENT_DATA/delsub3264.ins
index c0fdcce..cb54198 100644
--- a/CLIENT_DATA/delsub3264.ins
+++ b/CLIENT_DATA/delsub3264.ins
@@ -67,6 +67,17 @@ endif
 comment "Delete program shortcuts"
 LinkFolder_uninstall
 
+DefVar $Property_CustomPostUninstall$
+Set $Property_CustomPostUninstall$ = getProductProperty("custom-post-uninstall","none")
+if not ($Property_CustomPostUninstall$ = "none")
+	comment "Include custom post uninstall file"
+	if FileExists("%ScriptPath%\custom\" + $Property_CustomPostUninstall$)
+		sub_CustomPostUninstall
+	else
+		LogError "Include script NOT exists (" + $Property_CustomPostUninstall$ +")"
+	endif
+endif
+
 [Winbatch_uninstall_msi_old_32]
 msiexec /x $MsiIdOld32$ /qb! REBOOT=ReallySuppress
 
@@ -102,9 +113,12 @@ del -sf "$InstallDir64$\"
 ;
 ; Example of deleting a shortcut from AllUsers desktop:
 ;
-; set_basefolder common_desktopdirectory
-; set_subfolder ""
-; delete_element $ProductId$
+set_basefolder common_desktopdirectory
+set_subfolder ""
+delete_element $NAME$
+
+[sub_CustomPostUninstall]
+include_insert "%ScriptPath%\custom\" + $Property_CustomPostUninstall$
 
 [Sub_check_exitcode]
 comment "Test for installation success via exit code"
diff --git a/CLIENT_DATA/setup3264.ins b/CLIENT_DATA/setup3264.ins
index cd840c7..1b206f4 100644
--- a/CLIENT_DATA/setup3264.ins
+++ b/CLIENT_DATA/setup3264.ins
@@ -23,10 +23,14 @@ DefVar $OLD_VERSION$
 DefVar $OLD_CREATOR_TAG$
 DefVar $OLD_RELEASE$
 
+;Property Variables
+DefVar $Property_CustomPostInstall$
+DefVar $Property_DesktopLink$
+
 Set $INST_SystemType$ = GetSystemType
 set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
 
-Set $LogDir$ = "%SystemDrive%\tmp"
+Set $LogDir$ = "%opsiLogDir%"
 
 ; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh
 ; and adds the following variables:
@@ -79,6 +83,10 @@ else
 		Registry_install /32Bit
 		comment "Create shortcuts"
 		LinkFolder_install
+		Set $Property_DesktopLink$ = GetProductProperty("DesktopLink","false")
+		if ($Property_DesktopLink$ = "true")		
+			LinkFolder_install_DesktopLink_32
+		endif
 	endif
 
 	if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
@@ -93,6 +101,20 @@ else
 		Registry_install /64Bit
 		comment "Create shortcuts"
 		LinkFolder_install
+		Set $Property_DesktopLink$ = GetProductProperty("DesktopLink","false")
+		if ($Property_DesktopLink$ = "true")
+			LinkFolder_install_DesktopLink_64
+		endif
+	endif
+	
+	Set $Property_CustomPostInstall$ = getProductProperty("custom-post-install","none")
+	if not ($Property_CustomPostInstall$ = "none")
+		comment "Include custom post install file"
+		if FileExists("%ScriptPath%\custom\" + $Property_CustomPostInstall$)
+			sub_CustomPostInstall
+		else
+			LogError "Include script NOT exists (" + $Property_CustomPostInstall$ +")"
+		endif
 	endif
 	
 endif
@@ -161,6 +183,41 @@ copy "$IniCfgFile$" "$InstallDir64$"
 ; 	icon_index: 2
 ; end_link
 
+[LinkFolder_install_DesktopLink_32]
+;
+; Example of creating an shortcut to the installed exe on AllUsers desktop:
+;
+set_basefolder common_desktopdirectory
+set_subfolder ""
+;
+set_link
+	name: $NAME$
+	target: "$InstallDir32$\putty.exe"
+	parameters:
+	working_dir: $InstallDir32$
+	icon_file:
+	icon_index:
+end_link
+
+[LinkFolder_install_DesktopLink_64]
+;
+; Example of creating an shortcut to the installed exe on AllUsers desktop:
+;
+set_basefolder common_desktopdirectory
+set_subfolder ""
+;
+set_link
+	name: $NAME$
+	target: "$InstallDir64$\putty.exe"
+	parameters:
+	working_dir: $InstallDir64$
+	icon_file:
+	icon_index:
+end_link
+
+[sub_CustomPostInstall]
+include_insert "%ScriptPath%\custom\" + $Property_CustomPostInstall$
+
 [Sub_check_exitcode]
 comment "Test for installation success via exit code"
 set $ExitCode$ = getLastExitCode
diff --git a/CLIENT_DATA/uninstall3264.ins b/CLIENT_DATA/uninstall3264.ins
index e5b5cf0..3e948d8 100644
--- a/CLIENT_DATA/uninstall3264.ins
+++ b/CLIENT_DATA/uninstall3264.ins
@@ -25,7 +25,7 @@ DefVar $OLD_RELEASE$
 Set $INST_SystemType$ = GetSystemType
 set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
 
-Set $LogDir$ = "%SystemDrive%\tmp"
+Set $LogDir$ = "%opsiLogDir%"
 
 ; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh
 ; and adds the following variables:
diff --git a/OPSI/control b/OPSI/control
index 9688976..c1ec1c5 100644
--- a/OPSI/control
+++ b/OPSI/control
@@ -30,6 +30,30 @@ description: which architecture (32/64 bit) has to be installed
 values: ["32 only", "64 only", "both", "system specific"]
 default: ["system specific"]
 
+[ProductProperty]
+type: bool
+name: desktoplink
+description: Show Desktop Link on/off
+default: False
+
+[ProductProperty]
+type: unicode
+name: custom-post-install
+multivalue: False
+editable: True
+description: Define filename for include script in custom directory after installation
+values: ["none"]
+default: ["none"]
+
+[ProductProperty]
+type: unicode
+name: custom-post-uninstall
+multivalue: False
+editable: True
+description: Define filename for include script in custom directory after uninstallation
+values: ["none"]
+default: ["none"]
+
 [ProductDependency]
 action: setup
 requiredProduct: aio