aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/VcpkgPowershellUtils.ps119
-rw-r--r--scripts/fetchTool.ps18
2 files changed, 17 insertions, 10 deletions
diff --git a/scripts/VcpkgPowershellUtils.ps1 b/scripts/VcpkgPowershellUtils.ps1
index 676ee5c03..63069f44d 100644
--- a/scripts/VcpkgPowershellUtils.ps1
+++ b/scripts/VcpkgPowershellUtils.ps1
@@ -103,22 +103,25 @@ function vcpkgGetSHA512([Parameter(Mandatory=$true)][string]$filePath)
return $hash.ToLower()
}
-function vcpkgCheckEqualFileHash( [Parameter(Mandatory=$true)][string]$filePath,
+function vcpkgCheckEqualFileHash( [Parameter(Mandatory=$true)][string]$url,
+ [Parameter(Mandatory=$true)][string]$filePath,
[Parameter(Mandatory=$true)][string]$expectedHash,
[Parameter(Mandatory=$true)][string]$actualHash)
{
if ($expectedHash -ne $actualHash)
{
Write-Host ("`nFile does not have expected hash:`n" +
+ " url: [ $url ]`n" +
" File path: [ $filePath ]`n" +
" Expected hash: [ $expectedHash ]`n" +
" Actual hash: [ $actualHash ]`n")
- throw "Invalid Hash for file $filePath"
+ throw
}
}
function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
- [Parameter(Mandatory=$true)][string]$downloadPath)
+ [Parameter(Mandatory=$true)][string]$downloadPath,
+ [Parameter(Mandatory=$true)][string]$sha512)
{
if (Test-Path $downloadPath)
{
@@ -152,12 +155,17 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
}
$wc.DownloadFile($url, $downloadPartPath)
+
+ $actualHash = vcpkgGetSHA512 $downloadPartPath
+ vcpkgCheckEqualFileHash -url $url -filePath $downloadPath -expectedHash $sha512 -actualHash $actualHash
+
Move-Item -Path $downloadPartPath -Destination $downloadPath
}
function vcpkgDownloadFileWithAria2( [Parameter(Mandatory=$true)][string]$aria2exe,
[Parameter(Mandatory=$true)][string]$url,
- [Parameter(Mandatory=$true)][string]$downloadPath)
+ [Parameter(Mandatory=$true)][string]$downloadPath,
+ [Parameter(Mandatory=$true)][string]$sha512)
{
if (Test-Path $downloadPath)
{
@@ -178,6 +186,9 @@ function vcpkgDownloadFileWithAria2( [Parameter(Mandatory=$true)][string]$ari
throw
}
+ $actualHash = vcpkgGetSHA512 $downloadPartPath
+ vcpkgCheckEqualFileHash -url $url -filePath $downloadPath -expectedHash $sha512 -actualHash $actualHash
+
Move-Item -Path $downloadPartPath -Destination $downloadPath
}
diff --git a/scripts/fetchTool.ps1 b/scripts/fetchTool.ps1
index c076d304a..c1e8d87fc 100644
--- a/scripts/fetchTool.ps1
+++ b/scripts/fetchTool.ps1
@@ -51,21 +51,17 @@ function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool)
# Download aria2 with .NET. aria2 will be used to download everything else.
if ($tool -eq "aria2")
{
- vcpkgDownloadFile $url $downloadPath
+ vcpkgDownloadFile $url $downloadPath $toolData.sha512
}
else
{
$aria2exe = fetchToolInternal "aria2"
- vcpkgDownloadFileWithAria2 $aria2exe $url $downloadPath
+ vcpkgDownloadFileWithAria2 $aria2exe $url $downloadPath $toolData.sha512
}
Write-Host "Downloading $tool... done."
}
- $expectedDownloadedFileHash = $toolData.sha512
- $downloadedFileHash = vcpkgGetSHA512 $downloadPath
- vcpkgCheckEqualFileHash -filePath $downloadPath -expectedHash $expectedDownloadedFileHash -actualHash $downloadedFileHash
-
if ($isArchive)
{
Write-Host "Extracting $tool..."