#!/bin/pwsh . "$PSScriptRoot/../../Scripts/Context.ps1"; $null = New-Module { $path = "$env:APPDATA/osu"; $softwareName = "osu!lazer"; function Backup-OsuLazer([Context] $context) { Write-Host "Backing up osu!lazer"; $context.Backup($path, $context.SoftwareArchive($softwareName), @("-i@`"$PSScriptRoot/include.txt`"", "-i!*.realm", "-i!*.db")); } function Restore-OsuLazer([Context] $context) { Write-Host "Restoring osu!lazer"; Write-Information "Restoring files"; $context.Restore($context.SoftwareArchive($softwareName), $path); Write-Information "Installing osu!lazer"; $installerName = "osu!lazer.exe"; $processName = "osu!"; $tempDir = $context.GetTempDirectory(); Push-Location $tempDir; Invoke-WebRequest "https://github.com/ppy/osu/releases/latest/download/install.exe" -OutFile $installerName; Start-Process -FilePath $installerName; while (-not (Get-Process -ErrorAction "SilentlyContinue" $processName)) { Start-Sleep 1; } Start-Sleep 10; Get-Process $processName | Stop-Process -Force; Remove-Item "~\Desktop\*osu*"; Pop-Location; Remove-Item -Recurse $tempDir; } }