fleet/ee/maintained-apps/outputs/sublime-text/windows.json
2025-12-01 11:56:01 -06:00

21 lines
4.3 KiB
JSON

{
"versions": [
{
"version": "4.0.0.420000",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Sublime Text' AND publisher = 'Sublime HQ Pty Ltd';"
},
"installer_url": "https://download.sublimetext.com/sublime_text_build_4200_x64_setup.exe",
"install_script_ref": "ab680647",
"uninstall_script_ref": "03f70392",
"sha256": "3d3c70e51aef08f85d7160bcc70793bed9acec250973090ab67d98987bce7c7e",
"default_categories": [
"Developer tools"
]
}
],
"refs": {
"03f70392": "# Attempts to locate Sublime Text's uninstaller from registry and execute it silently\n\n$displayName = \"Sublime Text\"\n$publisher = \"Sublime HQ Pty Ltd\"\n\n$paths = @(\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall',\n 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall',\n 'HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall'\n)\n\n$uninstall = $null\nforeach ($p in $paths) {\n $items = Get-ItemProperty \"$p\\*\" -ErrorAction SilentlyContinue | Where-Object {\n $_.DisplayName -and ($_.DisplayName -eq $displayName -or $_.DisplayName -like \"$displayName*\") -and ($publisher -eq \"\" -or $_.Publisher -eq $publisher)\n }\n if ($items) { $uninstall = $items | Select-Object -First 1; break }\n}\n\nif (-not $uninstall -or -not $uninstall.UninstallString) {\n Write-Host \"Uninstall entry not found\"\n Exit 0\n}\n\n# Kill any running Sublime Text processes before uninstalling\nStop-Process -Name \"sublime_text\" -Force -ErrorAction SilentlyContinue\nStart-Sleep -Seconds 2\n\n$uninstallCommand = $uninstall.UninstallString\n$uninstallArgs = \"/VERYSILENT /NORESTART\"\n\n# Parse the uninstall command to separate executable from existing arguments\n$splitArgs = $uninstallCommand.Split('\"')\nif ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $existingArgs = $splitArgs[2].Trim()\n if ($existingArgs -ne '') {\n $uninstallArgs = \"$existingArgs $uninstallArgs\"\n }\n } elseif ($splitArgs.Length -gt 3) {\n Write-Host \"Error: Uninstall command contains multiple quoted strings\"\n Exit 1\n }\n $uninstallCommand = $splitArgs[1]\n}\n\nWrite-Host \"Uninstall command: $uninstallCommand\"\nWrite-Host \"Uninstall args: $uninstallArgs\"\n\ntry {\n $processOptions = @{\n FilePath = $uninstallCommand\n ArgumentList = $uninstallArgs\n NoNewWindow = $true\n PassThru = $true\n Wait = $true\n }\n \n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n \n Write-Host \"Uninstall exit code: $exitCode\"\n Exit $exitCode\n} catch {\n Write-Host \"Error running uninstaller: $_\"\n Exit 1\n}\n\n",
"ab680647": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n # Verify installer file exists\n if (-not (Test-Path $exeFilePath)) {\n Write-Host \"Error: Installer file not found at: $exeFilePath\"\n Exit 1\n }\n\n Write-Host \"Installing Sublime Text from: $exeFilePath\"\n \n # Add arguments to install silently\n # Sublime Text uses an Inno Setup-based installer\n # Based on winget manifest: https://github.com/microsoft/winget-pkgs/blob/master/manifests/s/SublimeHQ/SublimeText/4/4.0.0.420000/SublimeHQ.SublimeText.4.installer.yaml\n # /VERYSILENT = Very silent installation (no dialogs, no progress bar)\n # /SUPPRESSMSGBOXES = Suppress message boxes\n # /NORESTART = Do not restart the computer\n $processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/VERYSILENT /SUPPRESSMSGBOXES /NORESTART\"\n PassThru = $true\n Wait = $true\n NoNewWindow = $true\n }\n \n # Start process and track exit code\n Write-Host \"Starting installation with arguments: $($processOptions.ArgumentList)\"\n $process = Start-Process @processOptions\n \n if ($null -eq $process) {\n Write-Host \"Error: Failed to start installer process\"\n Exit 1\n }\n \n $exitCode = $process.ExitCode\n \n # Prints the exit code\n Write-Host \"Install exit code: $exitCode\"\n \n Exit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Write-Host \"Error details: $($_.Exception.Message)\"\n Exit 1\n}\n\n"
}
}