RelaxedIT.3rdParty.psm1
function RelaxedIT.3rdParty.upgrade { param ( [string]$config = "C:\ProgramData\RelaxedIT\3rdParty.json" ) # Check if the config file exists, create it if it doesn't if (!(Test-Path -Path $config)) { $base = (Get-Module RelaxedIT.EnergySaver).ModuleBase Test-AndCreatePath -Path (Get-BasePath -Path $config) Copy-Item -Path (Join-Path $base "3rdParty.json") -Destination $config Write-RelaxedIT "[Initial]: Copy default config to: ""$config""" } # Load the program list from the JSON config $defaultPrograms = @('adobereader', 'vlc', '7zip', 'audacity', 'audacity-lame', 'audacity-ffmpeg', 'libreoffice-fresh', 'pdf24') # gimp InkScape scribus darktable $programList = (Get-RelaxedITConfig -Config $config).id if (-not $programList) { $programList = $defaultPrograms } # Loop through each program and execute the Chocolatey upgrade command foreach ($program in $programList) { $params = (Get-RelaxedITConfig -Config $config | Where-Object {$_.id -eq $program}).params if ($params) { Write-RelaxedIT "[Upgrading]: $program with params: $params" & "C:\ProgramData\chocolatey\choco.exe" upgrade -y $program -params $params } else { Write-RelaxedIT "[Upgrading]: $program without params" & "C:\ProgramData\chocolatey\choco.exe" upgrade -y $program } } #clean desktop from shortcuts Get-ChildItem -Path "C:\Users\Public\Desktop" -Filter "*.lnk" | foreach-object { Remove-Item -Path $_.Fullname } } |