You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
$ErrorActionPreference = "Stop"
|
|
|
|
# Get the root directory and third_party directory
|
|
$ROOT_DIR = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent | Split-Path -Parent | Split-Path -Parent -Resolve
|
|
|
|
# Include the common functions
|
|
. "$ROOT_DIR/hack/lib/windows/init.ps1"
|
|
|
|
function Validate {
|
|
param (
|
|
[string]$file
|
|
)
|
|
|
|
# Generate the current checksum
|
|
$currentChecksum = Get-FileHash -Path $file -Algorithm SHA256
|
|
$generatedChecksumFile = "${file}.generated.sha256sum"
|
|
$currentChecksum.Hash | Out-File -FilePath $generatedChecksumFile
|
|
|
|
# Compare with the expected checksum
|
|
$expectedChecksumFile = "${file}.sha256sum"
|
|
$expectedChecksum = Get-Content -Path $expectedChecksumFile
|
|
|
|
if ($currentChecksum.Hash -eq $expectedChecksum.Trim()) {
|
|
GPUStack.Log.Info "Checksums match."
|
|
Remove-Item -Path $generatedChecksumFile
|
|
}
|
|
else {
|
|
GPUStack.Log.Fatal "Checksums do not match!`nPlease run 'Get-FileHash -Path install.ps1 -Algorithm SHA256 | Select -ExpandProperty Hash > install.ps1.sha256sum' to update the checksum."
|
|
}
|
|
}
|
|
|
|
#
|
|
# main
|
|
#
|
|
|
|
GPUStack.Log.Info "+++ VALIDATE +++"
|
|
try {
|
|
Validate -file "install.ps1"
|
|
}
|
|
catch {
|
|
GPUStack.Log.Fatal "failed to test: $($_.Exception.Message)"
|
|
}
|
|
GPUStack.Log.Info "--- VALIDATE ---"
|