diff --git a/Sense/scripts/build/build-windows.ps1 b/Sense/scripts/build/build-windows.ps1 index b084199..a08194f 100644 --- a/Sense/scripts/build/build-windows.ps1 +++ b/Sense/scripts/build/build-windows.ps1 @@ -18,6 +18,17 @@ function Assert-ChildPath([string]$Parent, [string]$Child) { } } +function Get-SenseFileSha256([string]$Path) { + $sha256 = [Security.Cryptography.SHA256]::Create() + $stream = [IO.File]::OpenRead($Path) + try { + return ([BitConverter]::ToString($sha256.ComputeHash($stream))).Replace('-', '') + } finally { + $stream.Dispose() + $sha256.Dispose() + } +} + Assert-ChildPath $senseRoot $distRoot Assert-ChildPath $distRoot $target Assert-ChildPath $distRoot $archive @@ -89,7 +100,7 @@ try { if ($LASTEXITCODE -ne 0) { throw 'Sense package audit failed.' } $manifest = foreach ($file in Get-ChildItem -LiteralPath $staging -Recurse -File | Sort-Object FullName) { $relative = $file.FullName.Substring($staging.Length + 1).Replace('\', '/') - "$(Get-FileHash -LiteralPath $file.FullName -Algorithm SHA256 | Select-Object -ExpandProperty Hash) $relative" + "$(Get-SenseFileSha256 -Path $file.FullName) $relative" } [IO.File]::WriteAllLines((Join-Path $staging 'MANIFEST.sha256'), $manifest, (New-Object Text.UTF8Encoding($false)))