PortValhalla/scripts/Windows/Scripts/SoftwarePackage.ps1

32 lines
1.1 KiB
PowerShell
Raw Normal View History

#!/bin/bash
. "$PSScriptRoot/Context.ps1";
function Install-SoftwarePackage([Context] $context, [string] $location, [string[]] $argumentList = @("/S"), [switch]$local) {
[string]$filePath = "";
[string]$tempDir = $null;
if (-not ($local.IsPresent)) {
2023-07-15 23:46:57 +00:00
Write-Information "Determining the file name of $location";
$tempDir = $context.GetTempDirectory();
2023-07-15 23:48:53 +00:00
$request = [System.Net.WebRequest]::Create($location);
2023-07-15 23:46:57 +00:00
$request.AllowAutoRedirect = $false;
$response = $request.GetResponse();
$fileName = [System.IO.Path]::GetFileName($response.GetResponseHeader("Location"));
Write-Information "$fileName";
$filePath = Join-Path $tempDir $fileName;
2023-07-15 10:25:42 +00:00
Write-Information "Downloading setup file from $location";
2023-07-15 23:46:57 +00:00
Invoke-WebRequest $location -OutFile $filePath;
} else {
$filePath = $location;
}
2023-07-15 10:25:42 +00:00
$fileName = [System.IO.Path]::GetFileName($filePath);
Write-Information "Starting installation of $fileName";
Start-Process -Wait -FilePath $filePath -ArgumentList $argumentList;
if ($tempDir) {
Remove-Item -Recurse $tempDir;
}
}