src/utility/Invoke-AzureCLIDownload.ps1
function Invoke-AzureCLIDownload { [CmdletBinding(PositionalBinding = $true)] [OutputType()] Param( [Parameter(Mandatory = $true, HelpMessage = "The Azure CLI semver.", Position = 0)] [ValidatePattern("(\d\.){2}(\d)")] [string]$Version, [Parameter(Mandatory = $false, HelpMessage = "The location where the file will be downloaded.", Position = 1)] [string]$Path = '.', [switch] $AutoExecute ) $BaseName = "azure-cli-" + $Version + ".msi" $FullName = Join-Path $Path $BaseName $Url = "https://azurecliprod.blob.core.windows.net/msi/" + $BaseName; Write-Host ("Step 1 of 2: Invoking-WebRequest with a Uri value of: " + $Url) $Response = Invoke-WebRequest -Uri $Url -ErrorAction Stop Write-Host ("Step 2 of 2: Writing Bytes of downloaded file to: " + $FullName) try { [io.file]::WriteAllBytes($FullName, $Response.Content) if ($AutoExecute.IsPresent) { Write-Host ("Executing " + $BaseName + " now.") Invoke-Expression -Command $FullName } else { Write-Host ("The file is located here: " + $Path) } } catch { Write-Host ("An error occurred writing the file to :" + $Path) } } |