mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2026-08-09 17:41:14 +10:00
Handle Microsoft Store winget sources (#4790)
This commit is contained in:
@@ -161,6 +161,15 @@
|
|||||||
"winget": "Cemu.Cemu",
|
"winget": "Cemu.Cemu",
|
||||||
"foss": true
|
"foss": true
|
||||||
},
|
},
|
||||||
|
"chatgpt": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "ChatGPT Desktop",
|
||||||
|
"description": "The official ChatGPT desktop app for Windows, distributed through the Microsoft Store.",
|
||||||
|
"link": "https://apps.microsoft.com/detail/9nt1r1c2hh7j",
|
||||||
|
"winget": "msstore:9NT1R1C2HH7J",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
"chatterino": {
|
"chatterino": {
|
||||||
"category": "Communications",
|
"category": "Communications",
|
||||||
"choco": "chatterino",
|
"choco": "chatterino",
|
||||||
@@ -188,6 +197,33 @@
|
|||||||
"winget": "Hibbiki.Chromium",
|
"winget": "Hibbiki.Chromium",
|
||||||
"foss": true
|
"foss": true
|
||||||
},
|
},
|
||||||
|
"cinebenchr23": {
|
||||||
|
"category": "Pro Tools",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "Cinebench R23",
|
||||||
|
"description": "Cinebench R23 is a benchmark tool for comparing CPU rendering performance across systems.",
|
||||||
|
"link": "https://www.maxon.net/en/cinebench",
|
||||||
|
"winget": "Maxon.CinebenchR23",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
|
"claude": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "claude",
|
||||||
|
"content": "Claude Desktop",
|
||||||
|
"description": "Anthropic's Claude desktop application for focused AI-assisted work and chat.",
|
||||||
|
"link": "https://claude.ai/download",
|
||||||
|
"winget": "Anthropic.Claude",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
|
"claude-code": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "claude-code",
|
||||||
|
"content": "Claude Code",
|
||||||
|
"description": "Anthropic's agentic coding tool for terminal and IDE development workflows.",
|
||||||
|
"link": "https://code.claude.com/",
|
||||||
|
"winget": "Anthropic.ClaudeCode",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
"cmake": {
|
"cmake": {
|
||||||
"category": "Development",
|
"category": "Development",
|
||||||
"choco": "cmake",
|
"choco": "cmake",
|
||||||
@@ -197,6 +233,15 @@
|
|||||||
"winget": "Kitware.CMake",
|
"winget": "Kitware.CMake",
|
||||||
"foss": true
|
"foss": true
|
||||||
},
|
},
|
||||||
|
"codex": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "codex",
|
||||||
|
"content": "Codex",
|
||||||
|
"description": "Codex CLI is an OpenAI coding agent that runs locally in your terminal.",
|
||||||
|
"link": "https://developers.openai.com/codex/cli",
|
||||||
|
"winget": "OpenAI.Codex",
|
||||||
|
"foss": true
|
||||||
|
},
|
||||||
"cpuz": {
|
"cpuz": {
|
||||||
"category": "Pro Tools",
|
"category": "Pro Tools",
|
||||||
"choco": "cpu-z",
|
"choco": "cpu-z",
|
||||||
@@ -314,6 +359,15 @@
|
|||||||
"winget": "Microsoft.DotNet.DesktopRuntime.10",
|
"winget": "Microsoft.DotNet.DesktopRuntime.10",
|
||||||
"foss": true
|
"foss": true
|
||||||
},
|
},
|
||||||
|
"dropbox": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "dropbox",
|
||||||
|
"content": "Dropbox",
|
||||||
|
"description": "Dropbox is a cloud storage client for syncing files, sharing content, and keeping documents available across devices.",
|
||||||
|
"link": "https://www.dropbox.com/desktop",
|
||||||
|
"winget": "Dropbox.Dropbox",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
"eaapp": {
|
"eaapp": {
|
||||||
"category": "Games",
|
"category": "Games",
|
||||||
"choco": "ea-app",
|
"choco": "ea-app",
|
||||||
@@ -539,6 +593,15 @@
|
|||||||
"winget": "DuongDieuPhap.ImageGlass",
|
"winget": "DuongDieuPhap.ImageGlass",
|
||||||
"foss": true
|
"foss": true
|
||||||
},
|
},
|
||||||
|
"internetdownloadmanager": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "internet-download-manager",
|
||||||
|
"content": "Internet Download Manager",
|
||||||
|
"description": "Internet Download Manager is a download manager for accelerating, resuming, and scheduling file downloads.",
|
||||||
|
"link": "https://www.internetdownloadmanager.com/",
|
||||||
|
"winget": "Tonec.InternetDownloadManager",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
"irfanview": {
|
"irfanview": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
"choco": "irfanview",
|
"choco": "irfanview",
|
||||||
@@ -1285,6 +1348,15 @@
|
|||||||
"winget": "SlackTechnologies.Slack",
|
"winget": "SlackTechnologies.Slack",
|
||||||
"foss": false
|
"foss": false
|
||||||
},
|
},
|
||||||
|
"startallback": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "StartAllBack",
|
||||||
|
"content": "StartAllBack",
|
||||||
|
"description": "StartAllBack restores and improves Windows taskbar, Start menu, File Explorer, and shell UI behavior.",
|
||||||
|
"link": "https://www.startallback.com/",
|
||||||
|
"winget": "StartIsBack.StartAllBack",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
"steam": {
|
"steam": {
|
||||||
"category": "Games",
|
"category": "Games",
|
||||||
"choco": "steam-client",
|
"choco": "steam-client",
|
||||||
@@ -1573,6 +1645,15 @@
|
|||||||
"winget": "Waterfox.Waterfox",
|
"winget": "Waterfox.Waterfox",
|
||||||
"foss": true
|
"foss": true
|
||||||
},
|
},
|
||||||
|
"whatsapp": {
|
||||||
|
"category": "Communications",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "WhatsApp Desktop",
|
||||||
|
"description": "WhatsApp Desktop is the official Windows desktop messaging app from Meta, distributed through the Microsoft Store.",
|
||||||
|
"link": "https://apps.microsoft.com/detail/9nksqgp7f2nh",
|
||||||
|
"winget": "msstore:9NKSQGP7F2NH",
|
||||||
|
"foss": false
|
||||||
|
},
|
||||||
"wingetui": {
|
"wingetui": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "wingetui",
|
"choco": "wingetui",
|
||||||
|
|||||||
@@ -8,9 +8,21 @@ Function Install-WinUtilProgramWinget {
|
|||||||
[string[]]$Programs
|
[string[]]$Programs
|
||||||
)
|
)
|
||||||
|
|
||||||
if ($Action -eq 'Install') {
|
foreach ($program in $Programs) {
|
||||||
Start-Process -FilePath winget -ArgumentList "install $Programs --accept-package-agreements --source winget --silent" -NoNewWindow -Wait
|
if ([string]::IsNullOrWhiteSpace($program) -or $program -eq "na") {
|
||||||
} else {
|
continue
|
||||||
Start-Process -FilePath winget -ArgumentList "uninstall $Programs --source winget --silent" -NoNewWindow -Wait
|
}
|
||||||
|
|
||||||
|
$source = "winget"
|
||||||
|
if ($program.StartsWith("msstore:", [System.StringComparison]::OrdinalIgnoreCase)) {
|
||||||
|
$source = "msstore"
|
||||||
|
$program = $program.Substring("msstore:".Length)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($Action -eq 'Install') {
|
||||||
|
Start-Process -FilePath winget -ArgumentList @("install", "--id", $program, "--accept-package-agreements", "--accept-source-agreements", "--source", $source, "--silent") -NoNewWindow -Wait
|
||||||
|
} else {
|
||||||
|
Start-Process -FilePath winget -ArgumentList @("uninstall", "--id", $program, "--source", $source, "--silent") -NoNewWindow -Wait
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,12 +28,16 @@ Function Invoke-WinUtilCurrentSystem {
|
|||||||
|
|
||||||
$originalEncoding = [Console]::OutputEncoding
|
$originalEncoding = [Console]::OutputEncoding
|
||||||
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
|
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
|
||||||
$Sync.InstalledPrograms = winget list -s winget | Select-Object -skip 3 | ConvertFrom-String -PropertyNames "Name", "Id", "Version", "Available" -Delimiter '\s{2,}'
|
$Sync.InstalledPrograms = @("winget", "msstore") | ForEach-Object {
|
||||||
|
winget list -s $psitem | Select-Object -skip 3 | ConvertFrom-String -PropertyNames "Name", "Id", "Version", "Available" -Delimiter '\s{2,}'
|
||||||
|
}
|
||||||
[Console]::OutputEncoding = $originalEncoding
|
[Console]::OutputEncoding = $originalEncoding
|
||||||
|
|
||||||
$filter = Get-WinUtilVariables -Type Checkbox | Where-Object {$psitem -like "WPFInstall*"}
|
$filter = Get-WinUtilVariables -Type Checkbox | Where-Object {$psitem -like "WPFInstall*"}
|
||||||
$sync.GetEnumerator() | Where-Object {$psitem.Key -in $filter} | ForEach-Object {
|
$sync.GetEnumerator() | Where-Object {$psitem.Key -in $filter} | ForEach-Object {
|
||||||
$dependencies = @($sync.configs.applications.$($psitem.Key).winget -split ";")
|
$dependencies = @($sync.configs.applications.$($psitem.Key).winget -split ";") | ForEach-Object {
|
||||||
|
$psitem -replace "^msstore:", ""
|
||||||
|
}
|
||||||
|
|
||||||
if ($dependencies[-1] -in $sync.InstalledPrograms.Id) {
|
if ($dependencies[-1] -in $sync.InstalledPrograms.Id) {
|
||||||
Write-Output $psitem.name
|
Write-Output $psitem.name
|
||||||
|
|||||||
Reference in New Issue
Block a user