param( $Action, [hashtable] $Arguments ) . "$PSScriptRoot/../../../Common/Scripts/Software.ps1"; & { param($Parameters) . "$PSScriptRoot/../../Scripts/Restoration.ps1"; Export-ModuleMember -Function @(); $getInstallPath = { return "$((Get-KnownFolder -SpecialFolder ProgramFilesX86).Path)/osu!"; } Start-SoftwareInstaller @Parameters ` -Installer { Install-ChocoPackage osu; Remove-DesktopIcon "*osu*"; } ` -Backup { Add-BackupArtifacts -Source (& $getInstallPath) -Path "osu!" ` -Include @( "Screenshots", "Skins", "Songs", "osu!.cfg", "scores.db" ); } ` -Configurator { Expand-BackupArtifacts -Path "osu!" -Target (& $getInstallPath); } ` -UserBackup { param([hashtable] $Arguments) $name = $Arguments.Name; Add-BackupArtifacts -Source "$(& $getInstallPath)/osu!.$name.cfg" -User $name -Path "osu!/osu!.cfg"; } ` -UserConfigurator { param([hashtable] $Arguments) $name = $Arguments.Name; Expand-BackupArtifacts -User $name -Path "osu!/osu!.cfg" -Target "$(& $getInstallPath)/osu!.$name.cfg"; }; } $PSBoundParameters;