darc-init.ps1 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. param (
  2. $darcVersion = $null,
  3. $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2020-02-20',
  4. $verbosity = 'minimal',
  5. $toolpath = $null
  6. )
  7. . $PSScriptRoot\tools.ps1
  8. function InstallDarcCli ($darcVersion, $toolpath) {
  9. $darcCliPackageName = 'microsoft.dotnet.darc'
  10. $dotnetRoot = InitializeDotNetCli -install:$true
  11. $dotnet = "$dotnetRoot\dotnet.exe"
  12. $toolList = & "$dotnet" tool list -g
  13. if ($toolList -like "*$darcCliPackageName*") {
  14. & "$dotnet" tool uninstall $darcCliPackageName -g
  15. }
  16. # If the user didn't explicitly specify the darc version,
  17. # query the Maestro API for the correct version of darc to install.
  18. if (-not $darcVersion) {
  19. $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
  20. }
  21. $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
  22. Write-Host "Installing Darc CLI version $darcVersion..."
  23. Write-Host 'You may need to restart your command window if this is the first dotnet tool you have installed.'
  24. if (-not $toolpath) {
  25. Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity -g"
  26. & "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g
  27. }else {
  28. Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity --tool-path '$toolpath'"
  29. & "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath"
  30. }
  31. }
  32. try {
  33. InstallDarcCli $darcVersion $toolpath
  34. }
  35. catch {
  36. Write-Host $_.ScriptStackTrace
  37. Write-PipelineTelemetryError -Category 'Darc' -Message $_
  38. ExitWithExitCode 1
  39. }