Cool Stuff
This commit is contained in:
85
install.ins
Normal file
85
install.ins
Normal file
@@ -0,0 +1,85 @@
|
||||
[Initial]
|
||||
Message=Installiere Python...
|
||||
DefVar $Version$
|
||||
DefVar $ExitCode$
|
||||
DefVar $AssociateFiles$
|
||||
DefVar $AssociateFilesArguments$
|
||||
DefVar $CreateShortcut$
|
||||
DefVar $ShortcutArgument$
|
||||
DefVar $PrependPath$
|
||||
DefVar $PrependPathArgument$
|
||||
DefVar $PackageList$
|
||||
|
||||
[Aktionen]
|
||||
ShowBitmap "%ScriptPath%\logo.png" "MDG Python"
|
||||
Sub_GetProperties
|
||||
Sub_ConfigureProperties
|
||||
WinBatch_Uninstall
|
||||
Files_Cleanup
|
||||
WinBatch_Setup
|
||||
WinBatch_UpdatePip
|
||||
Sub_CheckPackages
|
||||
Sub_HandleExitCode
|
||||
|
||||
[Sub_GetProperties]
|
||||
Set $Version$ = GetValue("productversion", GetProductMap)
|
||||
Set $AssociateFiles$ = GetProductProperty("associatefiles", "true")
|
||||
Set $CreateShortcut$ = GetProductProperty("shortcut", "true")
|
||||
Set $PrependPath$ = GetProductProperty("prependpath", "true")
|
||||
Set $PackageList$ = GetProductProperty("pippackages", "")
|
||||
|
||||
[Sub_ConfigureProperties]
|
||||
if ($AssociateFiles$ = "true")
|
||||
Set $AssociateFilesArguments$ = "AssociateFiles=1"
|
||||
else
|
||||
Set $AssociateFilesArguments$ = "AssociateFiles=0"
|
||||
endif
|
||||
|
||||
if ($CreateShortcut$ = "true")
|
||||
Set $ShortcutArgument$ = "Shortcuts=1"
|
||||
else
|
||||
Set $ShortcutArgument$ = "Shortcuts=0"
|
||||
endif
|
||||
|
||||
if ($PrependPath$ = "true")
|
||||
Set $PrependPathArgument$ = "PrependPath=1"
|
||||
else
|
||||
Set $PrependPathArgument$ = "PrependPath=0"
|
||||
endif
|
||||
|
||||
[WinBatch_Uninstall]
|
||||
; First uninstall Python due to an upstream issue with the installer on existing installations: https://bugs.python.org/issue41800
|
||||
"%ScriptPath%\data\python-$Version$-amd64.exe" /quiet /uninstall
|
||||
|
||||
[Files_Cleanup]
|
||||
; This ensures all data has been removed
|
||||
delete -sf "%ProgramFiles64Dir%\python39\"
|
||||
|
||||
[WinBatch_Setup]
|
||||
; https://docs.python.org/3/using/windows.html#installing-without-ui
|
||||
"%ScriptPath%\data\python-$Version$-amd64.exe" /passive InstallAllUsers=1 InstallLauncherAllUsers=1 $AssociateFilesArguments$ $ShortcutArgument$ $PrependPathArgument$ /log "%opsiLogDir%\python-install.log"
|
||||
|
||||
[WinBatch_UpdatePip]
|
||||
"%ProgramFiles64Dir%\python39\python.exe" -m pip install --upgrade pip
|
||||
|
||||
[Sub_CheckPackages]
|
||||
if not($PackageList$ = "")
|
||||
WinBatch_Packages
|
||||
endif
|
||||
|
||||
[WinBatch_Packages]
|
||||
"%ProgramFiles64Dir%\python39\Scripts\pip.exe" install -U $PackageList$
|
||||
|
||||
[Sub_HandleExitCode]
|
||||
; check return code
|
||||
Set $ExitCode$ = GetLastExitCode
|
||||
comment "GetLastExitCode: " + $ExitCode$
|
||||
if not($ExitCode$ = "0" or $ExitCode$ = "3010" or $ExitCode$ = "2359302" or $ExitCode$ = "2359297")
|
||||
; 0 ERROR_SUCCESS
|
||||
; 3010 ERROR_SUCCESS_REBOOT_REQUIRED
|
||||
; List of WUSA ExitCodes: https://support.microsoft.com/en-us/kb/938205
|
||||
; 2359297 (WUSA ExitCode, Hex: 0x240001) WU_S_SERVICE_STOP
|
||||
; 2359302 (WUSA ExitCode, Hex: 0x00240006) WU_S_ALREADY_INSTALLED
|
||||
LogError "Fatal: setup returned exit code " + $ExitCode$
|
||||
IsFatalError
|
||||
endif
|
||||
Reference in New Issue
Block a user