[
    {
        "UpdateStageName": "Synergy Download",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "SteamCMD",
        "UpdateSourceData": "17520",
        "UpdateSourceArgs": "17520",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Create Half-Life 2 Directory",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CreateDirectory",
        "UpdateSourceArgs": "{{$FullRootDir}}Half-Life 2",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Half-Life 2 Download",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "SteamCMD",
        "UpdateSourceData": "220",
        "UpdateSourceArgs": "17520",
        "UpdateSourceTarget": "{{$FullRootDir}}Half-Life 2",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "SteamCMD Components Download",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "SteamCMD",
        "UpdateSourceData": "1007",
        "UpdateSourceArgs": "17520",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Server.cfg Template File Download",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/synergyserver.cfg",
        "UpdateSourceArgs": "AMP_server.cfg",
        "UpdateSourceTarget": "{{$FullRootDir}}",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Metamod Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "Executable",
        "UpdateSourceData": "/bin/bash",
        "UpdateSourceArgs": "-c \"MetamodBuild=\\\"{{MetamodBuild}}\\\" && MetamodBranch=\\\"{{MetamodBranch}}\\\" && if [[ -z \\\"$MetamodBuild\\\" ]]; then wget -qO metamod.tar.gz \\\"https://metamodsource.net/latest.php?os=linux&version=$MetamodBranch\\\" && echo \\\"Latest Metamod $MetamodBranch build downloaded\\\" && exit 0; elif [[ ! \\\"$MetamodBuild\\\" =~ ^[0-9]+$ ]]; then echo \\\"Invalid Metamod build version format specified\\\" && exit 1; fi; if { [[ \\\"$MetamodBranch\\\" == \\\"2.0\\\" ]] && [[ \\\"$MetamodBuild\\\" -ge 1391 ]]; } || { [[ \\\"$MetamodBranch\\\" == \\\"1.12\\\" ]] && [[ \\\"$MetamodBuild\\\" -ge 1221 ]]; }; then DownloadURL=\\\"https://github.com/alliedmodders/metamod-source/releases/download/$MetamodBranch.0.$MetamodBuild/mmsource-$MetamodBranch.0-git$MetamodBuild-linux.tar.gz\\\"; else DownloadURL=\\\"https://mms.alliedmods.net/mmsdrop/$MetamodBranch/mmsource-$MetamodBranch.0-git$MetamodBuild-linux.tar.gz\\\"; fi; wget -qO metamod.tar.gz \\\"$DownloadURL\\\" && echo \\\"Metamod $MetamodBranch build $MetamodBuild downloaded\\\"\"",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Metamod Download",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "Executable",
        "UpdateSourceData": "powershell.exe",
        "UpdateSourceArgs": "-NoProfile -Command \"$ProgressPreference='SilentlyContinue'; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $MetamodBuild='{{MetamodBuild}}'; $MetamodBranch='{{MetamodBranch}}'; if ([string]::IsNullOrWhiteSpace($MetamodBuild)) { Invoke-WebRequest -UseBasicParsing -Uri \\\"https://metamodsource.net/latest.php?os=windows&version=$MetamodBranch\\\" -OutFile 'metamod.zip'; if ($?) { Write-Output \\\"Latest Metamod $MetamodBranch build downloaded\\\"; exit 0 } } elseif ($MetamodBuild -notmatch '^\\d+$') { Write-Output \\\"Invalid Metamod build version format specified\\\"; exit 1 }; if (($MetamodBranch -eq '2.0' -and [int]$MetamodBuild -ge 1391) -or ($MetamodBranch -eq '1.12' -and [int]$MetamodBuild -ge 1221)) { $DownloadURL = \\\"https://github.com/alliedmodders/metamod-source/releases/download/$MetamodBranch.0.$MetamodBuild/mmsource-$MetamodBranch.0-git$MetamodBuild-windows.zip\\\" } else { $DownloadURL = \\\"https://mms.alliedmods.net/mmsdrop/$MetamodBranch/mmsource-$MetamodBranch.0-git$MetamodBuild-windows.zip\\\" }; Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile 'metamod.zip'; if ($?) { Write-Output \\\"Metamod $MetamodBranch build $MetamodBuild downloaded\\\" }\"",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Metamod Extract",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "ExtractArchive",
        "UpdateSourceData": "metamod.tar.gz",
        "UpdateSourceTarget": "{{$FullBaseDir}}synergy",
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Metamod Extract",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "ExtractArchive",
        "UpdateSourceData": "metamod.zip",
        "UpdateSourceTarget": "{{$FullBaseDir}}synergy",
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "SourceMod Download Directory Creation",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CreateDirectory",
        "UpdateSourceArgs": "{{$FullBaseDir}}sm",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "SourceMod Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "Executable",
        "UpdateSourceData": "/bin/bash",
        "UpdateSourceArgs": "-c \"SourceModBuild=\\\"{{SourceModBuild}}\\\" && SourceModBranch=\\\"{{SourceModBranch}}\\\" && if [[ -z \\\"$SourceModBuild\\\" ]]; then wget -qO sourcemod.tar.gz \\\"https://sourcemod.net/latest.php?os=linux&version=$SourceModBranch\\\" && echo \\\"Latest SourceMod $SourceModBranch build downloaded\\\" && exit 0; elif [[ ! \\\"$SourceModBuild\\\" =~ ^[0-9]+$ ]]; then echo \\\"Invalid SourceMod build version format specified\\\" && exit 1; fi; if { [[ \\\"$SourceModBranch\\\" == \\\"1.13\\\" ]] && [[ \\\"$SourceModBuild\\\" -ge 7311 ]]; } || { [[ \\\"$SourceModBranch\\\" == \\\"1.12\\\" ]] && [[ \\\"$SourceModBuild\\\" -ge 7225 ]]; }; then DownloadURL=\\\"https://github.com/alliedmodders/sourcemod/releases/download/$SourceModBranch.0.$SourceModBuild/sourcemod-$SourceModBranch.0-git$SourceModBuild-linux.tar.gz\\\"; else DownloadURL=\\\"https://sm.alliedmods.net/smdrop/$SourceModBranch/sourcemod-$SourceModBranch.0-git$SourceModBuild-linux.tar.gz\\\"; fi; wget -qO sourcemod.tar.gz \\\"$DownloadURL\\\" && echo \\\"SourceMod $SourceModBranch build $SourceModBuild downloaded\\\"\"",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "SourceMod Download",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "Executable",
        "UpdateSourceData": "powershell.exe",
        "UpdateSourceArgs": "-NoProfile -Command \"$ProgressPreference='SilentlyContinue'; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $SourceModBuild='{{SourceModBuild}}'; $SourceModBranch='{{SourceModBranch}}'; if ([string]::IsNullOrWhiteSpace($SourceModBuild)) { Invoke-WebRequest -UseBasicParsing -Uri \\\"https://sourcemod.net/latest.php?os=windows&version=$SourceModBranch\\\" -OutFile 'sourcemod.zip'; if ($?) { Write-Output \\\"Latest SourceMod $SourceModBranch build downloaded\\\"; exit 0 } } elseif ($SourceModBuild -notmatch '^\\d+$') { Write-Output \\\"Invalid SourceMod build version format specified\\\"; exit 1 }; if (($SourceModBranch -eq '1.13' -and [int]$SourceModBuild -ge 7311) -or ($SourceModBranch -eq '1.12' -and [int]$SourceModBuild -ge 7225)) { $DownloadURL = \\\"https://github.com/alliedmodders/sourcemod/releases/download/$SourceModBranch.0.$SourceModBuild/sourcemod-$SourceModBranch.0-git$SourceModBuild-windows.zip\\\" } else { $DownloadURL = \\\"https://sm.alliedmods.net/smdrop/$SourceModBranch/sourcemod-$SourceModBranch.0-git$SourceModBuild-windows.zip\\\" }; Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile 'sourcemod.zip'; if ($?) { Write-Output \\\"SourceMod $SourceModBranch build $SourceModBuild downloaded\\\" }\"",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "SourceMod Extract",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "ExtractArchive",
        "UpdateSourceData": "sourcemod.tar.gz",
        "UpdateSourceTarget": "{{$FullBaseDir}}sm",
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "SourceMod Extract",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "ExtractArchive",
        "UpdateSourceData": "sourcemod.zip",
        "UpdateSourceTarget": "{{$FullBaseDir}}sm",
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "SourceMod Installation",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "Executable",
        "UpdateSourceData": "powershell.exe",
        "UpdateSourceArgs": "-NoProfile -Command \"Set-Location -Path 'synergy/17520'; if (Test-Path 'synergy/cfg/sourcemod') { Remove-Item -Path 'sm/cfg/sourcemod' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null }; if (Test-Path 'synergy/addons/sourcemod/configs') { Remove-Item -Path 'sm/addons/sourcemod/configs' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null }; if (Test-Path 'synergy/addons/sourcemod/plugins') { Remove-Item -Path 'sm/addons/sourcemod/plugins' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null }; Copy-Item -Path 'sm/*' -Destination 'synergy' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null; Remove-Item -Path 'sm' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null\"",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "SourceMod Installation",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "Executable",
        "UpdateSourceData": "/bin/bash",
        "UpdateSourceArgs": "-c \"cd synergy/17520 && [ -d synergy/cfg/sourcemod ] && rm -rf sm/cfg/sourcemod >/dev/null 2>&1; [ -d synergy/addons/sourcemod/configs ] && rm -rf sm/addons/sourcemod/configs >/dev/null 2>&1; [ -d synergy/addons/sourcemod/plugins ] && rm -rf sm/addons/sourcemod/plugins >/dev/null 2>&1; \\cp -rf sm/* synergy/ >/dev/null 2>&1; rm -rf sm >/dev/null 2>&1\"",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true",
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "Activate Metamod and SourceMod",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CreateFile",
        "UpdateSourceData": "\"Plugin\"\n{\n\t\"file\"\t\"../synergy/addons/metamod/bin/server\"\n}",
        "UpdateSourceArgs": "{{$FullBaseDir}}synergy/addons/metamod.vdf",
        "OverwriteExistingFiles": true,
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "true"
    },
    {
        "UpdateStageName": "Disable Metamod and SourceMod",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "Executable",
        "UpdateSourceData": "cmd.exe",
        "UpdateSourceArgs": "/C cd synergy\\17520\\synergy\\addons > NUL 2>&1 && del /Q /F metamod.vdf > NUL 2>&1 & exit /b 0",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "false"
    },
    {
        "UpdateStageName": "Disable Metamod and SourceMod",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "Executable",
        "UpdateSourceData": "/bin/bash",
        "UpdateSourceArgs": "-c \"cd synergy/17520/synergy/addons >/dev/null 2>&1 && rm -rf metamod.vdf >/dev/null 2>&1; exit 0\"",
        "UpdateSourceConditionSetting": "InstallMod",
        "UpdateSourceConditionValue": "false"
    }
]