+ "Octopus.Action.Script.ScriptBody": "function AddOrReplaceEnvironmentVariable {\n param\n (\n [string] $variableName, \n [string] $variableValue,\n [string] $siteName,\n [string] $appCmd\n )\n\n Try {\n [xml] $xmlConfig = (&$appCmd list config $sev_siteName -section:system.webServer/aspNetCore)\n }\n Catch {\n Write-Host $sev_siteName 'either does not exist or is not an AspNetCore site!'\n exit -1\n }\n\n if($xmlConfig.selectNodes(\"//environmentVariable[@name='$variableName']\")) {\n &$appCmd set config $sev_siteName -section:system.webServer/aspNetCore /-\"environmentVariables.[name='$variableName',value='$variableValue']\" /commit:apphost\n }\n \n &$appCmd set config $sev_siteName -section:system.webServer/aspNetCore /+\"environmentVariables.[name='$variableName',value='$variableValue']\" /commit:apphost\n}\n\n[string] $sev_siteName=$OctopusParameters['sev_siteName']\n[string] $sev_envVariables=$OctopusParameters['sev_envVariables']\n[string] $sev_appCmdPath=$OctopusParameters['sev_appCmdPath']\n\nWrite-Host \"---------------------------\"\nWrite-Host $sev_envVariables\nWrite-Host $sev_appCmdPath\nWrite-Host \"---------------------------\"\n\n$appCmd = Join-Path $sev_appCmdPath 'appcmd.exe'\n\nforeach($line in $sev_envVariables -split '\\r?\\n') {\n $indexOfEquals = $line.IndexOf('=')\n if ($indexOfEquals -eq -1) {\n Write-Host \"Invalid environment variable format: $line\"\n continue\n }\n $key = $line.Substring(0, $indexOfEquals)\n $value = $line.Substring($indexOfEquals + 1)\n\n AddOrReplaceEnvironmentVariable $key $value $sev_siteName $appCmd\n}\n",
0 commit comments