Files
qt5/coin/provisioning/common/windows/helpers.ps1
Simo Fält 5ed768546f Fix 5.6 provisioning
Due to changes in Coin and tool changes 5.6 provisioning
is broken. This change makes sure pip is always up to date in
macOS 10.11. It also sets required SSL and SQL env variables
for win7.

Change-Id: Id44ee06b2eefbe973f3110152fe52dcbf6375819
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2018-05-05 20:12:28 +00:00

115 lines
3.2 KiB
PowerShell

function Verify-Checksum
{
Param (
[string]$File=$(throw("You must specify a filename to get the checksum of.")),
[string]$Expected=$(throw("Checksum required")),
[ValidateSet("sha1","md5")][string]$Algorithm="sha1"
)
$fs = new-object System.IO.FileStream $File, "Open"
$algo = [type]"System.Security.Cryptography.$Algorithm"
$crypto = $algo::Create()
$hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "")
$fs.Close()
if ($hash -ne $Expected) {
Write-Error "Checksum verification failed, got: '$hash' expected: '$Expected'"
}
}
function Extract-Zip
{
Param (
[string]$Source,
[string]$Destination
)
echo "Extracting '$Source' to '$Destination'..."
New-Item -ItemType Directory -Force -Path $Destination
$shell = new-object -com shell.application
$zipfile = $shell.Namespace($Source)
$destinationFolder = $shell.Namespace($Destination)
$destinationFolder.CopyHere($zipfile.Items(), 16)
}
function Extract-Dev-Folders-From-Zip
{
Param (
[string]$package,
[string]$zipDir,
[string]$installPath
)
$shell = new-object -com shell.application
echo "Extracting contents of $package"
foreach ($subDir in "lib", "include", "bin", "share") {
$zip = $shell.Namespace($package + "\" + $zipDir + "\" + $subDir)
if ($zip) {
Write-Host "Extracting $subDir from zip archive"
} else {
Write-Host "$subDir is missing from zip archive - skipping"
continue
}
$destDir = $installPath + "\" + $subdir
New-Item $destDir -type directory
$destinationFolder = $shell.Namespace($destDir)
$destinationFolder.CopyHere($zip.Items(), 16)
}
}
function BadParam
{
Param ([string]$Description)
throw("You must specify $Description")
}
function Download
{
Param (
[string] $OfficialUrl = $(BadParam("the official download URL")),
[string] $CachedUrl = $(BadParam("the locally cached URL")),
[string] $Destination = $(BadParam("a download target location"))
)
$ProgressPreference = 'SilentlyContinue'
try {
if ($CachedUrl.StartsWith("http")) {
Invoke-WebRequest -UseBasicParsing $CachedUrl -OutFile $Destination
} else {
Copy-Item $CachedUrl $Destination
}
} catch {
Invoke-WebRequest -UseBasicParsing $OfficialUrl -OutFile $Destination
}
}
function Set-EnvironmentVariable
{
Param (
[string]$Key = $(BadParam("a key")),
[string]$Value = $(BadParam("a value."))
)
Write-Host "Setting environment variable `"$($Key)`" to `"$($Value)`""
[Environment]::SetEnvironmentVariable($Key, $Value, [EnvironmentVariableTarget]::Machine)
}
function Add-Path
{
Param (
[string]$Path
)
echo "Adding $Path to Path"
$oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine')
[Environment]::SetEnvironmentVariable("Path", $oldPath + ";$Path", [EnvironmentVariableTarget]::Machine)
}
function is64bitWinHost
{
if(($env:PROCESSOR_ARCHITECTURE -eq "AMD64") -or ($env:PROCESSOR_ARCHITEW6432 -eq "AMD64")) {
return 1
}
else {
return 0
}
}