functions/internal/Save-S1PackageFromUrl.ps1
function Save-PackageFromUrl { [CmdLetbinding()] param($url, $OutFile, $PackageName, $Header,[Switch]$Force) try { $result = @{newVersion = $false } $ProgressPreference = 'SilentlyContinue' [System.Net.HttpWebResponse] $PackageResponse = [System.Net.WebRequest]::Create($url).GetResponse(); if (-not (Test-path packages)) { new-item packages -ItemType Directory } # $rw = invoke-webrequest -Uri $url $eTagFile = "$($PackageName)-ETag.json" if ( test-path $eTagFile) { $oldetag = (get-content $eTagFile -Raw | convertfrom-json ).PackageETag $result.OldKey = $oldetag } $newETag = $PackageResponse.headers[$Header] $result.Add("NewKey", $newETag) $PackageResponse.Dispose(); if ($Force -or "" -eq "$oldETag" -or $oldETag -ne $newETag ) { Write-Host "Old $Header $oldETag is different to new $Header $newETag" Invoke-WebRequest $url -OutFile $OutFile @{PackageETag = $newETag } | convertto-json | out-file $eTagFile $Result.newVersion = $true $Result.OutputFile = $OutFile } return [PSCustomObject]$Result } finally { } } |