Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ee/maintained-apps/inputs/homebrew/webex.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
"installer_format": "dmg",
"slug": "webex/darwin",
"install_script_path": "ee/maintained-apps/inputs/homebrew/scripts/webex_install.sh",
"default_categories": ["Communication"]
"default_categories": ["Communication"],
"frozen": true
}
56 changes: 38 additions & 18 deletions ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID
# variable
# Evernote (electron-builder NSIS) registers a versioned DisplayName in HKLM
# when installed with /allusers, e.g. "Evernote 11.24.3 (All Users)". The
# "(All Users)" suffix is locale-dependent, so match on the "Evernote" prefix
# only. Its QuietUninstallString runs "Uninstall Evernote.exe" /allusers /S,
# which also closes the running tray app.
# The "(All Users)" suffix in Evernote's DisplayName is locale-dependent, so
# match on the "Evernote" prefix only.
$softwareName = "Evernote"

$softwareNameLike = "Evernote*"

# electron-builder NSIS uninstaller; /allusers matches the machine-wide install
# /allusers matches the machine-wide install
$uninstallArgs = "/allusers /S"

$machineKey = `
Expand All @@ -30,17 +25,12 @@ $foundUninstaller = $false
foreach ($key in $uninstallKeys) {
if ($key.DisplayName -like $softwareNameLike) {
$foundUninstaller = $true
# Get the uninstall command. Some uninstallers do not include
# 'QuietUninstallString' and require a flag to run silently.
$uninstallCommand = if ($key.QuietUninstallString) {
$key.QuietUninstallString
} else {
$key.UninstallString
}

# The uninstall command may contain command and args, like:
# "C:\Program Files\Software\uninstall.exe" /SILENT
# Split the command and args
$splitArgs = $uninstallCommand.Split('"')
if ($splitArgs.Length -gt 1) {
if ($splitArgs.Length -eq 3) {
Expand All @@ -65,21 +55,51 @@ foreach ($key in $uninstallKeys) {
$processOptions.ArgumentList = "$uninstallArgs"
}

# Start process and track exit code
$process = Start-Process @processOptions
$exitCode = $process.ExitCode

# Prints the exit code
Write-Host "Uninstall exit code: $exitCode"
# Exit the loop once the software is found and uninstalled.

# Without an "_?=<installdir>" argument an NSIS uninstaller relaunches
# itself from %TEMP% and exits 0 before the removal finishes, so wait
# for the registry entry to clear.
if ($exitCode -eq 0) {
$deadline = (Get-Date).AddSeconds(300)
do {
Start-Sleep -Seconds 5
# Fail closed: a failed query is not proof of removal. Keys are
# read leniently since the uninstaller deletes them as we walk.
$stillInstalled = $true
try {
$stillInstalled = [bool](Get-ChildItem `
-Path @($machineKey, $machineKey32on64) `
-ErrorAction Stop |
ForEach-Object {
Get-ItemProperty $_.PSPath `
-ErrorAction SilentlyContinue
} |
Where-Object {
$_.DisplayName -like $softwareNameLike
})
} catch {
Write-Host "Could not query the uninstall registry: $_"
}
} while ($stillInstalled -and (Get-Date) -lt $deadline)

if ($stillInstalled) {
Write-Host "Could not confirm '$softwareName' was removed."
$exitCode = 1
} else {
Write-Host "'$softwareName' was removed."
}
}

break
}
}

if (-not $foundUninstaller) {
Write-Host "Uninstaller for '$softwareName' not found."
# Change exit code to 0 if you don't want to fail if uninstaller is not
# found. This could happen if program was already uninstalled.
$exitCode = 1
}

Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/alt-tab/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "11.4.3",
"version": "11.4.4",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos' AND version_compare(bundle_short_version, '11.4.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos' AND version_compare(bundle_short_version, '11.4.4') < 0);"
},
"installer_url": "https://github.com/lwouis/alt-tab-macos/releases/download/v11.4.3/AltTab-11.4.3.zip",
"installer_url": "https://github.com/lwouis/alt-tab-macos/releases/download/v11.4.4/AltTab-11.4.4.zip",
"install_script_ref": "ec488fa7",
"uninstall_script_ref": "2cc2914b",
"sha256": "f6471d3cfc3ca70986ab55fe2dd334da5ad629d517eaf8eb3449fc0e7123eddd",
"sha256": "83e2254169c7b3308b7b4f9ff31b376df436e0dde0fa8d2fb484b5cf2fe4a507",
"default_categories": [
"Productivity"
]
Expand Down
4 changes: 2 additions & 2 deletions ee/maintained-apps/outputs/amadine/darwin.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"versions": [
{
"version": "1.8.3",
"version": "1.8.4",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine' AND version_compare(bundle_short_version, '1.8.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine' AND version_compare(bundle_short_version, '1.8.4') < 0);"
},
"installer_url": "https://belightsoft.s3.amazonaws.com/Amadine.dmg",
"install_script_ref": "6a5b1e85",
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/arc/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.158.1",
"version": "1.159.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser' AND version_compare(bundle_short_version, '1.158.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser' AND version_compare(bundle_short_version, '1.159.0') < 0);"
},
"installer_url": "https://releases.arc.net/release/Arc-1.158.1-84367.zip",
"installer_url": "https://releases.arc.net/release/Arc-1.159.0-84639.zip",
"install_script_ref": "cbf109ae",
"uninstall_script_ref": "a19b04fa",
"sha256": "be7330c46a541676f82326cfb896534a40c37f5384c1bc33bf0cb90ddd205ab5",
"sha256": "989037d63b91c869157f85ad10dfbe9634ae6ccd59cc7663b7e0485b3cff9ba8",
"default_categories": [
"Browsers"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/badgeify/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.14.3",
"version": "1.14.4",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify' AND version_compare(bundle_short_version, '1.14.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify' AND version_compare(bundle_short_version, '1.14.4') < 0);"
},
"installer_url": "https://api.badgeify.app/release/download/darwin/universal/1.14.3",
"installer_url": "https://api.badgeify.app/release/download/darwin/universal/1.14.4",
"install_script_ref": "cdee59cc",
"uninstall_script_ref": "9d0f29ae",
"sha256": "cdec814a6e868a6dfbe294f762eee2d443669574aeaf9ee7e260af98cc104fbb",
"sha256": "161b2eb84475161a23b8a4d189f84e71c24c7cc993479e665b53c0397985c75d",
"default_categories": [
"Utilities"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/beekeeper-studio/windows.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "5.9.2",
"version": "5.9.3",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team' AND version_compare(version, '5.9.2') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team' AND version_compare(version, '5.9.3') < 0);"
},
"installer_url": "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v5.9.2/Beekeeper-Studio-Setup-5.9.2.exe",
"installer_url": "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v5.9.3/Beekeeper-Studio-Setup-5.9.3.exe",
"install_script_ref": "13334753",
"uninstall_script_ref": "44e6f772",
"sha256": "b0df0fb81ba4615373b484b77338913c47682f3f78f35806162f9ecd16ec638d",
"sha256": "7627dde785d05ef4c20bacf6d2c3a88fcbeb6d30f8bfde344ab09aaecfe15c4e",
"default_categories": [
"Developer tools"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/brave-browser/windows.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "151.1.93.129",
"version": "151.1.93.132",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc' AND version_compare(version, '151.1.93.129') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc' AND version_compare(version, '151.1.93.132') < 0);"
},
"installer_url": "https://github.com/brave/brave-browser/releases/download/v1.93.129/BraveBrowserStandaloneSilentSetup.exe",
"installer_url": "https://github.com/brave/brave-browser/releases/download/v1.93.132/BraveBrowserStandaloneSilentSetup.exe",
"install_script_ref": "9a0c2b15",
"uninstall_script_ref": "30c77f69",
"sha256": "e343f5716621b98267b7991004f822661fda3297e7a05b308ec603fb279fdb61",
"sha256": "a5dd2df003548bf95711a85bc8be7bec39a44ad80440915f2c2073748f3b05e8",
"default_categories": [
"Browsers"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/burp-suite/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "2026.7.2",
"version": "2026.7.3",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70' AND version_compare(bundle_short_version, '2026.7.2') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70' AND version_compare(bundle_short_version, '2026.7.3') < 0);"
},
"installer_url": "https://portswigger-cdn.net/burp/releases/download?product=desktop&version=2026.7.2&type=MacOsArm64",
"installer_url": "https://portswigger-cdn.net/burp/releases/download?product=desktop&version=2026.7.3&type=MacOsArm64",
"install_script_ref": "1cdedd7f",
"uninstall_script_ref": "6916a6a5",
"sha256": "3740b9af5c08a57ee10134dc963cb14005300003cfe87a15a396bc9027f45086",
"sha256": "fa2702f50dd6f68faaa2e288cf2b5334c193c177925c8a96ffe6d7f8c958fac6",
"default_categories": [
"Developer tools"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/calibre/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "9.12.0",
"version": "9.13.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre' AND version_compare(bundle_short_version, '9.12.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre' AND version_compare(bundle_short_version, '9.13.0') < 0);"
},
"installer_url": "https://download.calibre-ebook.com/9.12.0/calibre-9.12.0.dmg",
"installer_url": "https://download.calibre-ebook.com/9.13.0/calibre-9.13.0.dmg",
"install_script_ref": "099b9491",
"uninstall_script_ref": "1945fe9a",
"sha256": "9bf73b38ecf46e064b068c89047e6d55c827458a1db20d7c90dc435db4b1783a",
"sha256": "001be6ed70d8acfd793fa7d8c95ea50045abedaf0e756b20e564275a0b0a7667",
"default_categories": [
"Productivity"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/calibre/windows.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "9.12.0",
"version": "9.13.0",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal' AND version_compare(version, '9.12.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal' AND version_compare(version, '9.13.0') < 0);"
},
"installer_url": "https://download.calibre-ebook.com/9.12.0/calibre-64bit-9.12.0.msi",
"installer_url": "https://download.calibre-ebook.com/9.13.0/calibre-64bit-9.13.0.msi",
"install_script_ref": "22e48c46",
"uninstall_script_ref": "3ae8dcd8",
"sha256": "f6456073bfcf37adf6302fb4149fa8b4d798d411bc0dafd99cb629a5006dcfa6",
"sha256": "f5f19e870163c20ec63a656d6f5d0c123e07c4254899380ebeec51b00766e615",
"default_categories": [
"Productivity"
],
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/capcut/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "9.1.0.4369",
"version": "9.2.0.4444",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas' AND version_compare(bundle_short_version, '9.1.0.4369') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas' AND version_compare(bundle_short_version, '9.2.0.4444') < 0);"
},
"installer_url": "https://sf16-web-tos-buz.capcutstatic.com/obj/capcut-web-buz-sg/packages/CapCut_9_1_0_4369_capcutpc_0_creatortool.dmg",
"installer_url": "https://sf16-web-tos-buz.capcutstatic.com/obj/capcut-web-buz-sg/packages/CapCut_9_2_0_4444_capcutpc_0_creatortool.dmg",
"install_script_ref": "6c43d082",
"uninstall_script_ref": "30a898df",
"sha256": "95a8b1cc9ecbcbe368b3e788c2acfb911a8969eb15936e9dc6cdd9d7eb720148",
"sha256": "5abd96d2d022088e655958c8c526b91632783bb887e270482caeba222f50d14e",
"default_categories": [
"Productivity"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/chatbox/windows.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.22.1",
"version": "1.22.2",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang' AND version_compare(version, '1.22.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang' AND version_compare(version, '1.22.2') < 0);"
},
"installer_url": "https://download.chatboxai.app/releases/Chatbox-1.22.1-Setup.exe",
"installer_url": "https://download.chatboxai.app/releases/Chatbox-1.22.2-Setup.exe",
"install_script_ref": "dd2de847",
"uninstall_script_ref": "ba694131",
"sha256": "476666ea51fb725b7453dace0934a0f186672545115dfa931e015d28e05ffb3f",
"sha256": "1c6a8f7b98fd6eebfb267d537315467554d4495dce684f376517375c850bbd0e",
"default_categories": [
"Productivity"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/chatgpt/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "26.730.61639",
"version": "26.803.41515",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat' AND version_compare(bundle_short_version, '26.730.61639') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat' AND version_compare(bundle_short_version, '26.803.41515') < 0);"
},
"installer_url": "https://persistent.oaistatic.com/codex-app-prod/ChatGPT-darwin-arm64-26.730.61639.zip",
"installer_url": "https://persistent.oaistatic.com/codex-app-prod/ChatGPT-darwin-arm64-26.803.41515.zip",
"install_script_ref": "cbce2d7d",
"uninstall_script_ref": "678e6cf0",
"sha256": "da88c8a15eab1ddc8efdf50182d4aca7468d995193d952c344a4d10d38c45871",
"sha256": "8abd46bf063bc27cbadcbc2863007ac44365b13a23ede17ceaee81fb9eeaeb9a",
"default_categories": [
"Productivity"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/cherry-studio/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "2.0.0",
"version": "2.0.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio' AND version_compare(bundle_short_version, '2.0.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio' AND version_compare(bundle_short_version, '2.0.2') < 0);"
},
"installer_url": "https://github.com/CherryHQ/cherry-studio/releases/download/v2.0.0/Cherry-Studio-2.0.0-arm64.dmg",
"installer_url": "https://github.com/CherryHQ/cherry-studio/releases/download/v2.0.2/Cherry-Studio-2.0.2-arm64.dmg",
"install_script_ref": "31529318",
"uninstall_script_ref": "69da7eb5",
"sha256": "5bfb675c37cb821ff97afbd31c4229d76040d150d6ce728a4569ef342ca14ee6",
"sha256": "f3bc808fd03382671e8d7f542300bfcc8058091399654cba5bd2f4942d057b34",
"default_categories": [
"Developer tools"
]
Expand Down
8 changes: 4 additions & 4 deletions ee/maintained-apps/outputs/claude/darwin.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.25927.0",
"version": "1.26832.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop' AND version_compare(bundle_short_version, '1.25927.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop' AND version_compare(bundle_short_version, '1.26832.0') < 0);"
},
"installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.25927.0/Claude-003700efafbc2ccb4b1177a5e637b14da381799e.zip",
"installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.26832.0/Claude-056ee2be623b207f6a4d24dfb1b2fb5a82db0ecf.zip",
"install_script_ref": "6e4c028b",
"uninstall_script_ref": "421baa98",
"sha256": "024fd60c6008efcac5be32e5faf3f5e7510b6a8adef07fd5834e49a7b5d1a78a",
"sha256": "6b0f2c51c5e1c3f6db3885233ad96e48f92e61438b0bd9892c69f2ea11c54950",
"default_categories": [
"Developer tools"
]
Expand Down
Loading
Loading