This is an old revision of the document!
Adaptation of the opsi-template scripts for Notepad2.
Notepad2 is a fast and light-weight Notepad-like text editor with syntax highlighting.
Website of the author, with x86 and x64 installation files: http://www.flos-freeware.ch/notepad2.html
During the installation a notepad2.ini is copied to the installation directory of notepad2, which redirects notepad2 to use the ini file in the Application Data folder of the user. This way each user can mess with his own settings.
[Package] version: 2 depends: incremental: False [Product] type: localboot id: notepad2 name: Notepad2 Editor description: Replacement for Windows Notepad advice: version: 4.2.25 priority: -50 licenseRequired: False productClasses: setupScript: setup.ins uninstallScript: uninstall.ins updateScript: alwaysScript: onceScript: customScript: userLoginScript: [ProductProperty] type: unicode name: install_architecture multivalue: False editable: True description: Defines x86 or x64 architecture values: ["32 only", "64 only", "both", "system specific"] default: ["system specific"] [Changelog] notepad2 (4.2.25-1) testing; urgency=low * Initial package -- ICT <ict@your-mom.com> Thu, 21 Jun 2012 03:03:14 +0000
[Actions] requiredWinstVersion >= "4.10.8.6" DefVar $LogDir$ DefVar $ProductId$ DefVar $MinimumSpace$ DefVar $InstallDir32$ DefVar $InstallDir64$ DefVar $ExitCode$ DefVar $INST_SystemType$ DefVar $INST_architecture$ Set $INST_SystemType$ = GetSystemType set $INST_architecture$ = GetProductProperty("install_architecture","system specific") Set $LogDir$ = "%SystemDrive%\tmp" ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- ;$ProductId$ should be the name of the product in opsi ; therefore please: only lower letters, no umlauts, ; no white space use '-' as a seperator Set $ProductId$ = "notepad2" Set $MinimumSpace$ = "10 MB" ; the path were we find the product after the installation Set $InstallDir32$ = "%ProgramFiles32Dir%\" + $ProductId$ Set $InstallDir64$ = "%ProgramFiles64Dir%\" + $ProductId$ ; ---------------------------------------------------------------- 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%\" + $ProductId$ + ".png" $ProductId$ comment "installing" if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") Message "Installing " + $ProductId$ + " 32 Bit..." comment "Start setup program" Winbatch_install_32 Sub_check_exitcode comment "Copy files" Files_install_32 /32Bit comment "Copy files to all userprofiles" Files_install_allusers /AllNTUserProfiles endif if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) Message "Installing " + $ProductId$ + " 64 Bit..." comment "Start setup program" Winbatch_install_64 Sub_check_exitcode comment "Copy files" Files_install_64 /64Bit comment "Copy files to all userprofiles" Files_install_allusers /AllNTUserProfiles endif endif [Winbatch_install_32] "%ScriptPath%\files\Notepad2_4.2.25_x86.exe" /silent [Files_install_32] copy -s "%ScriptPath%\files\programfiles\Notepad2.ini" "$InstallDir32$" [Winbatch_install_64] "%ScriptPath%\files\Notepad2_4.2.25_x64.exe" /silent [Files_install_64] copy -s "%ScriptPath%\files\programfiles\Notepad2.ini" "$InstallDir64$" [Files_install_allusers] copy -s "%ScriptPath%\files\appdata\Notepad2.ini" "%UserProfileDir%\Application Data\" [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." 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." 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.10.8.6" DefVar $UninstallProgram32$ DefVar $UninstallProgram64$ DefVar $LogDir$ DefVar $ExitCode$ DefVar $ProductId$ DefVar $InstallDir32$ DefVar $InstallDir64$ DefVar $INST_SystemType$ DefVar $INST_architecture$ Set $INST_SystemType$ = GetSystemType set $INST_architecture$ = GetProductProperty("install_architecture","system specific") Set $LogDir$ = "%SystemDrive%\tmp" ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- Set $ProductId$ = "notepad2" Set $InstallDir32$ = "%ProgramFiles32Dir%\" + $ProductId$ Set $InstallDir64$ = "%ProgramFiles64Dir%\" + $ProductId$ ; ---------------------------------------------------------------- comment "Show product picture" ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ Set $UninstallProgram32$ = $InstallDir32$ + "\Notepad2.inf" Set $UninstallProgram64$ = $InstallDir64$ + "\Notepad2.inf" if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") Message "Uninstalling " + $ProductId$ + " 32 Bit..." if FileExists($UninstallProgram32$) comment "Uninstall program found, starting uninstall" Winbatch_uninstall_32 sub_check_exitcode endif comment "Delete files" Files_uninstall_allusers /AllNTUserProfiles endif if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) Message "Uninstalling " + $ProductId$ + " 64 Bit..." if FileExists($UninstallProgram64$) comment "Uninstall program found, starting uninstall" ExecWith_uninstall_64 "%SystemRoot%\cmd64.exe" /C sub_check_exitcode endif comment "Delete files" Files_uninstall_allusers /AllNTUserProfiles endif [Winbatch_uninstall_32] rundll32.exe advpack.dll,LaunchINFSectionEx "$UninstallProgram32$",DefaultUninstall,,8,N [ExecWith_uninstall_64] rundll32.exe advpack.dll,LaunchINFSectionEx "$UninstallProgram64$",DefaultUninstall,,8,N [Files_uninstall_allusers] delete -f "%UserProfileDir%\Application Data\Notepad2.ini" [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." 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." else logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ isFatalError endif endif endif endif