misc/Download-And-ExtractArchive.ps1
<#
.SYNOPSIS Downloads a ZIP archive from a specified URL and extracts it to a destination directory. .DESCRIPTION This function downloads a ZIP archive from the provided URL and extracts its contents to the specified destination directory. It uses the `Invoke-WebRequest` cmdlet to download the file and the `Expand-Archive` cmdlet to extract it. .PARAMETER zipUrl The URL of the ZIP archive to be downloaded. .PARAMETER destination The path to the directory where the archive will be extracted. .EXAMPLE $destination = "$(Build.ArtifactStagingDirectory)\allapps" Download-And-ExtractArchive -zipUrl "https://smartartifacts.blob.core.windows.net/localization-apps/ua/latest.zip$(AppStorageSAS)" -destination $destination #> function Download-And-ExtractArchive { param ( [Parameter(Mandatory = $true)] [string]$zipUrl, [Parameter(Mandatory = $true)] [string]$destination ) try { $tempDir = "$Env:BUILD_ARTIFACTSTAGINGDIRECTORY" $zipPath = Join-Path -Path $tempDir -ChildPath "apps.zip" Invoke-WebRequest -Uri $zipUrl -OutFile $zipPath Expand-Archive -Path $zipPath -DestinationPath $destination -Force Write-Output "Archive downloaded and extracted to $destination" } catch { Write-Error "An error occurred: $_" } } |