38 lines
1.4 KiB
PowerShell
38 lines
1.4 KiB
PowerShell
. "$PSScriptRoot/../../Scripts/Context.ps1";
|
|
|
|
$null = New-Module {
|
|
$path = "$HOME/Documents/TrackMania";
|
|
$softwareName = "TmUnitedForever";
|
|
|
|
function Backup-TmUnited([Context] $context) {
|
|
Write-Host "Backing up TrackMania United Forever";
|
|
$context.Backup($path, $context.SoftwareArchive($softwareName), @("-i@`"$PSScriptRoot/include.txt`""));
|
|
}
|
|
|
|
function Restore-TmUnited([Context] $context) {
|
|
$feature = "DirectPlay";
|
|
Write-Host "Restoring TrackMania United Forever";
|
|
|
|
if (-not (Get-WindowsOptionalFeature -Online -FeatureName $feature).State) {
|
|
Enable-WindowsOptionalFeature -Online -FeatureName $feature;
|
|
}
|
|
|
|
Write-Information "Determining location of setup file";
|
|
$exePath;
|
|
|
|
while (-not (Test-Path $exePath)) {
|
|
$exePath = Read-Host "Please drag'n'drop the setup file here or type the absolute path to the file";
|
|
|
|
if (-not (Test-Path $exePath)) {
|
|
Write-Error "A file at the specified path could not be found.";
|
|
}
|
|
}
|
|
|
|
Write-Information "Installing TrackMania United Forever";
|
|
Start-Process -Wait -FilePath $exePath -ArgumentList @("/Silent");
|
|
Write-Information "Removing desktop icon";
|
|
Remove-Item "$env:PUBLIC\Desktop\*TmUnitedForever*";
|
|
Write-Information "Restoring files";
|
|
$context.Restore($context.SoftwareArchive($softwareName), $path);
|
|
}
|
|
}
|