winst-mdg-python/install.ins

86 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
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