; opsiscript syntax highlighting test
;
; SPDX-FileCopyrightText: 2024 Stefan Staeglich
;
; SPDX-License-Identifier: LGPL




[Actions]

requiredWinstVersion >= "4.12.8"
ScriptErrorMessages=off
setLogLevel = 7


DefVar $OS$ = GetOS
DefVar $ProductId$ = "test"

DefVar $filename$ = GetProductProperty("filename", "/tmp/testfile.txt")

comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$

Switch $OS$
case "Linux"
Message "Try to install " + $ProductId$ " on " + $OS$
sub_main_linux
EndCase
case "Windows_NT"
Message "Try to install " + $ProductId$ " on " + $OS$
sub_main_windows
EndCase
DefaultCase
Message $OS$ + " is not supported"
EndCase
EndSwitch

[sub_main_linux]

DefVar $distrotype$ = getLinuxDistroType
DefStringList $linuxInfo$ = getLinuxVersionMap
DefVar $distCodeName$ = getValue("Codename", $linuxInfo$)
DefVar $distRelease$ = getValue("Release", $linuxInfo$)
DefVar $distroName$ = getValue("Distributor ID", $linuxInfo$)

if not ($distrotype$ = 'debian')
LogError "Product: " + $ProductId$ + "is desinged for Debian/Ubuntu"
isFatalError "Wrong Distrotype"
endif

Message "Try to get Package Lock..."
if waitForPackageLock("60","false")
comment "we got the package lock."
else
LogError "could not get Package Lock"
isFatalError "package lock failed"
endif

ShellInAnIcon_install_linux
if not("0" = getLastExitCode)
LogError "failed ShellInAnIcon_install_linux"
isFatalError "ShellInAnIcon_install_linux"
endif

Patches_config_systemd "/etc/systemd/system/test.service.d/override.conf"
if not("0" = getLastExitCode)
Message "failed Patches_config_systemd"
LogError "failed Patches_config_systemd"
isFatalError "config_systemd"
endif

Message "Patch config file ..."
XML2_config "/etc/test.conf"
if not("0" = getLastExitCode)
Message "failed XML2_config"
LogError "failed XML2_config"
isFatalError "XML2_config"
endif

PatchTextFile_config "/etc/test.conf"
if not("0" = getLastExitCode)
Message "failed PatchTextFile_config"
LogError "failed PatchTextFile_config"
isFatalError "XML2_config"
endif

[ShellInAnIcon_install_linux]

set -x
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
export DEBIAN_FRONTEND=noninteractive
EXITCODE=0
apt-get --yes install test
if [ $? -ne 0 ]; then EXITCODE=1; fi
exit $EXITCODE

[XML2_config]

openNode 'file'
SetAttribute "name" "$filename$"

[PatchTextFile_config]

FindLine_Containing "$filename$"
DeleteTheLine
SaveToFile "/etc/test2.conf"

[Patches_config_systemd]

delsec [Service]
set [Service] Restart=on-failure