SetupIdentitySources.ps1 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. [CmdletBinding()]
  2. param (
  3. [Parameter(Mandatory = $true)][string]$ConfigFile,
  4. [Parameter(Mandatory = $true)][string]$IdentityModelPackageSource
  5. )
  6. $ErrorActionPreference = "Stop"
  7. Set-StrictMode -Version 2.0
  8. [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
  9. # Add source entry to PackageSources
  10. function AddPackageSource($sources, $SourceName, $SourceEndPoint) {
  11. $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']")
  12. if ($packageSource -eq $null)
  13. {
  14. $packageSource = $doc.CreateElement("add")
  15. $packageSource.SetAttribute("key", $SourceName)
  16. $packageSource.SetAttribute("value", $SourceEndPoint)
  17. $sources.AppendChild($packageSource) | Out-Null
  18. }
  19. else {
  20. Write-Host "Package source $SourceName already present."
  21. }
  22. }
  23. if (!(Test-Path $ConfigFile -PathType Leaf)) {
  24. Write-PipelineTelemetryError -Category 'Build' -Message "eng/scripts/SetupIdentitySources.ps1 returned a non-zero exit code. Couldn't find the NuGet config file: $ConfigFile"
  25. ExitWithExitCode 1
  26. }
  27. # Load NuGet.config
  28. $doc = New-Object System.Xml.XmlDocument
  29. $filename = (Get-Item $ConfigFile).FullName
  30. $doc.Load($filename)
  31. # Get reference to <PackageSources> or create one if none exist already
  32. $sources = $doc.DocumentElement.SelectSingleNode("packageSources")
  33. if ($sources -eq $null) {
  34. $sources = $doc.CreateElement("packageSources")
  35. $doc.DocumentElement.AppendChild($sources) | Out-Null
  36. }
  37. AddPackageSource -Sources $sources -SourceName "identitymodel-nightlies" -SourceEndPoint $IdentityModelPackageSource
  38. $doc.Save($filename)