87 lines
2.6 KiB
TeX
87 lines
2.6 KiB
TeX
[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
|
|
; Leave previous versions for future removal
|
|
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
|