From eed2260266e136c4a75d9a5024737f76e78bd19b Mon Sep 17 00:00:00 2001 From: Dominik Daehn Date: Wed, 19 Jun 2019 07:14:42 +0200 Subject: [PATCH] change LogDir; add ProductProperty desktoplink, custom-post-install, custom-post-uninstall fix uninstall - script pause for 1 second --- CLIENT_DATA/delsub3264.ins | 22 +++++++++++-- CLIENT_DATA/setup3264.ins | 59 ++++++++++++++++++++++++++++++++++- CLIENT_DATA/uninstall3264.ins | 2 +- OPSI/control | 24 ++++++++++++++ 4 files changed, 102 insertions(+), 5 deletions(-) diff --git a/CLIENT_DATA/delsub3264.ins b/CLIENT_DATA/delsub3264.ins index 8a38fcb..e0c0e68 100644 --- a/CLIENT_DATA/delsub3264.ins +++ b/CLIENT_DATA/delsub3264.ins @@ -25,6 +25,7 @@ if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specif comment "Uninstall program found, starting uninstall" Winbatch_uninstall_old_32 sub_check_exitcode + sleepseconds 1 endif endif if FileExists($UninstallProgram32$) @@ -54,6 +55,7 @@ if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system spe comment "Uninstall program found, starting uninstall" Winbatch_uninstall_old_64 sub_check_exitcode + sleepseconds 1 endif endif if FileExists($UninstallProgram64$) @@ -71,6 +73,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_old_32] "$UninstallProgramOld32$" /silent /norestart /SUPPRESSMSGBOXES /nocancel @@ -106,9 +119,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 d271a2b..2570473 100644 --- a/CLIENT_DATA/setup3264.ins +++ b/CLIENT_DATA/setup3264.ins @@ -25,10 +25,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: @@ -85,6 +89,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")) @@ -103,6 +111,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 @@ -186,6 +208,41 @@ delete_element "Iron Config and Backup" ; 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$\chrome.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$\chrome.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 1ec6179..0f30624 100644 --- a/CLIENT_DATA/uninstall3264.ins +++ b/CLIENT_DATA/uninstall3264.ins @@ -27,7 +27,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 332fb42..34a4c3a 100644 --- a/OPSI/control +++ b/OPSI/control @@ -30,3 +30,27 @@ 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"] +