2012-12-12
Script by uib gmbh
Comments and improvements welcome
Tested with opsi 4.0.2
type: localboot
id: xmind
name: xmind
description: XMind brainstorming and mind mapping software
version: 3.2.1
Requires javavm. So make a dependency.
Full package: http://download.uib.de/opsi4.0/products/contribute/full-package/
; Copyright (c) uib gmbh (www.uib.de) ; This sourcecode is owned by uib ; and published under the Terms of the General Public License. ; credits: http://www.opsi.org/en/credits/ [Actions] requiredWinstVersion >= "4.11.2.6" DefVar $LogDir$ DefVar $ProductId$ DefVar $MinimumSpace$ DefVar $InstallDir$ DefVar $ExitCode$ DefVar $Install_Prog$ DefVar $Install_Cmd$ DefVar $Version$ DefVar $Executable$ DefVar $UninstallProgram$ DefVar $appdata$ Set $LogDir$ = "%SystemDrive%\opsi.org\tmp" ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- Set $ProductId$ = "xmind" Set $MinimumSpace$ = "46 MB" ; the path were we find the product after the installation Set $InstallDir$ = "%ProgramFiles32Dir%\XMind" Set $Install_Prog$ = "xmind-win-3.2.1.201011212218.exe" Set $Version$ = "3.2.1" Set $Executable$ = $InstallDir$ + "\xmind.exe" ; ---------------------------------------------------------------- if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$ isFatalError ; Stop process and set installation status to failed else comment "Show product picture" ShowBitmap "%ScriptPath%\xmind-icon.png" $ProductId$ if FileExists($InstallDir$) comment "Start uninstall sub section" Sub "%ScriptPath%\delsub.ins" endif Message "Installing " + $ProductId$ + " ..." comment "Start setup program" Winbatch_install Sub_check_exitcode sub_Checkxmind set $appdata$ = "Application data" comment "'Application data' is used even on a non english XPor on win7" Files_installprefs_profiles /AllNtUserProfiles comment "desktop icon ..." LinkFolder_install comment "use xmind for freemind and mindmanager files ..." Registry_install /32bit endif [sub_Checkxmind] comment "Check if "+$InstallDir$+" Exists" if FileExists($InstallDir$) comment "install dir "+$InstallDir$+" exists" else comment "InstallDir "+$InstallDir$+" does NOT exist" LogError "Did not find the InstallDir "+$InstallDir$+". Maybe a fatal build, so calling isFatalError" isFatalError endif [Winbatch_install] "%ScriptPath%\xmind-win-3.2.1.201011212218.exe" /S [Files_installprefs_profiles] ; This third line copies the file to the Commons\ in each user's profile directory, which is used when an xmind file is clicked copy "%ScriptPath%\net.xmind.verify.prefs" "%UserProfileDir%\$appdata$\xmind\workspace-cathy\.metadata\.plugins\org.eclipse.core.runtime\.settings\" copy "%ScriptPath%\org.xmind.cathy.prefs" "%UserProfileDir%\$appdata$\xmind\workspace-cathy\.metadata\.plugins\org.eclipse.core.runtime\.settings\" del "%UserProfileDir%\Desktop\XMind.lnk" [LinkFolder_install] set_basefolder common_desktopdirectory set_subfolder "" set_link name: $ProductId$ target: $Executable$ parameters: working_dir: $InstallDir$ icon_file: icon_index: end_link set_basefolder common_programs set_subfolder "XMind" set_link name: $ProductId$ target: $Executable$ parameters: working_dir: $InstallDir$ icon_file: icon_index: end_link [Registry_install] openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.mm] set ""="mmfile" openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.mmap] set ""="mmapfile" set "Content Type"="application/vnd.mindjet.mindmanager" openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmapfile] set ""="MindManager File" openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmapfile\DefaultIcon] set ""='"%ProgramFiles32Dir%\XMind\xmind_file.ico"' openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmapfile\Shell\Open\Command] set ""='"%ProgramFiles32Dir%\XMind\xmind.exe" %1' openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmfile] set ""="FreeMind File" openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmfile\DefaultIcon] set ""='"%ProgramFiles32Dir%\XMind\xmind_file.ico"' openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmfile\Shell\Open\Command] set ""='"%ProgramFiles32Dir%\XMind\xmind.exe" %1' [Sub_check_exitcode] comment "Test for installation success via exit code" set $ExitCode$ = getLastExitCode ; informations to exit codes see ; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx ; http://msdn.microsoft.com/en-us/library/aa368542.aspx if ($ExitCode$ = "0") comment "Looks good: setup program gives exitcode zero" else comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ if ($ExitCode$ = "1605") comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." comment "Uninstall of a not installed product failed - no problem" else if ($ExitCode$ = "1641") comment "looks good: setup program gives exitcode 1641" comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." Exitwindows /Reboot else if ($ExitCode$ = "3010") comment "looks good: setup program gives exitcode 3010" comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." Exitwindows /Reboot else logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ isFatalError endif endif endif endif
; Copyright (c) uib gmbh (www.uib.de) ; This sourcecode is owned by uib gmbh ; and published under the Terms of the General Public License. ; credits: http://www.opsi.org/en/credits/ Set $UninstallProgram$ = $InstallDir$ + "\uninstall.exe" Message "Uninstalling " + $ProductId$ + " ..." if FileExists($UninstallProgram$) comment "Uninstall program found, starting uninstall" Winbatch_uninstall /WaitforProcessending "Au_.exe" /Timeoutseconds 10 sub_check_exitcode endif comment "Delete files" Files_uninstall /32Bit comment "Delete linkFolder" LinkFolder_delete comment "del file associations to freemind and mindmanager ..." Registry_uninstall [Winbatch_uninstall] ; === Nullsoft Scriptable Install System ================================================================ "$UninstallProgram$" /S [Files_uninstall] del -sf "$InstallDir$\" [LinkFolder_delete] set_basefolder common_desktopdirectory set_subfolder "" delete_element $ProductId$ set_basefolder common_programs delete_subfolder "XMind" [Registry_uninstall] openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmapfile\DefaultIcon] DeleteVar "" openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmapfile\Shell\Open\Command] DeleteVar "" openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmfile\DefaultIcon] DeleteVar "" openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mmfile\Shell\Open\Command] DeleteVar "" [Sub_check_exitcode] comment "Test for installation success via exit code" set $ExitCode$ = getLastExitCode ; informations to exit codes see ; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx ; http://msdn.microsoft.com/en-us/library/aa368542.aspx if ($ExitCode$ = "0") comment "Looks good: setup program gives exitcode zero" else comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ if ($ExitCode$ = "1605") comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." comment "Uninstall of a not installed product failed - no problem" else if ($ExitCode$ = "1641") comment "looks good: setup program gives exitcode 1641" comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." Exitwindows /Reboot else if ($ExitCode$ = "3010") comment "looks good: setup program gives exitcode 3010" comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." Exitwindows /Reboot else logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ isFatalError endif endif endif endif
; Copyright (c) uib gmbh (www.uib.de) ; This sourcecode is owned by uib gmbh ; and published under the Terms of the General Public License. ; credits: http://www.opsi.org/en/credits/ [Actions] requiredWinstVersion >= "4.11.2.6" DefVar $LogDir$ DefVar $ExitCode$ DefVar $ProductId$ DefVar $InstallDir$ DefVar $UninstallProgram$ Set $LogDir$ = "%SystemDrive%\opsi.org\tmp" ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- Set $ProductId$ = "xmind" Set $InstallDir$ = "%ProgramFiles32Dir%\XMind" ; ---------------------------------------------------------------- comment "Show product picture" ShowBitmap "%ScriptPath%\xmind-icon.png" $ProductId$ Message "Uninstalling " + $ProductId$ + " ..." if FileExists($InstallDir$) comment "Start uninstall sub section" Sub "%ScriptPath%\delsub.ins" endif