Classes/WingetManager.ps1
|
class WingetManager { [LibraryContext]$Context WingetManager([LibraryContext]$context) { $this.Context = $context } [void]Uninstall([string]$singleSoftware, [object]$softwareList) { if ($softwareList) { foreach ($softwareName in $softwareList) { $this.Uninstall($softwareName, $null) } } elseif($singleSoftware) { # Get list of installed packages that contain the name $installed = winget list --name $singleSoftware --accept-source-agreements | Select-String $singleSoftware if ($installed) { $this.Context.LogManager.Log("Attempting to uninstall software matching: $singleSoftware") winget uninstall $singleSoftware --silent --force --purge --disable-interactivity --accept-source-agreements $this.Context.LogManager.Log("Uninstall of $singleSoftware OK!") } else { $this.Context.LogManager.Log("Software '$singleSoftware' not found - skipping uninstall.", "WARN") } } } [void]Install([string]$singleSoftware, [object]$softwareList) { if ($softwareList) { foreach ($softwareName in $softwareList) { $this.Install($softwareName, $null) } } elseif($singleSoftware) { $this.Context.LogManager.Log("Attempting to install software matching: $singleSoftware") winget install --id=$singleSoftware -e --accept-source-agreements $this.Context.LogManager.Log("Install of $singleSoftware OK!") } } } |