Add PuTTY as a Windows FMA (#40155)
This pull request adds support for the PuTTY application (Windows) to the maintained apps system, including metadata, installation/uninstallation scripts, and frontend icon integration. The changes ensure that PuTTY can be managed and visually represented in the software catalog. **Maintained Apps Integration:** - Added a new input file `putty.json` with PuTTY metadata for Windows, specifying installer details and categories. - Generated an output file `putty/windows.json` containing version information, install/uninstall scripts, installer URL, and SHA256 hash for PuTTY. - Updated the aggregated `apps.json` output to include PuTTY with its description and unique identifier for the Windows platform. **Frontend/Icon Integration:** - Added a new React SVG icon component for PuTTY in `Putty.tsx`. - Registered the PuTTY icon in the icon index and mapped it in `SOFTWARE_NAME_TO_ICON_MAP` for display in the software catalog. [[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR15) [[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR412)
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "PuTTY",
|
||||
"slug": "putty/windows",
|
||||
"package_identifier": "PuTTY.PuTTY",
|
||||
"unique_identifier": "PuTTY release 0.83 (x64)",
|
||||
"installer_arch": "x64",
|
||||
"installer_type": "msi",
|
||||
"installer_scope": "machine",
|
||||
"default_categories": ["Productivity"]
|
||||
}
|
||||
@@ -1261,6 +1261,13 @@
|
||||
"unique_identifier": "com.initex.proxifier.v3.macos",
|
||||
"description": "Proxifier is an app that allows network applications that do not support working through proxy servers to operate through a SOCKS or HTTPS proxy and chains."
|
||||
},
|
||||
{
|
||||
"name": "PuTTY",
|
||||
"slug": "putty/windows",
|
||||
"platform": "windows",
|
||||
"unique_identifier": "PuTTY release 0.83 (x64)",
|
||||
"description": "PuTTY is a free, open-source SSH and Telnet client for Windows."
|
||||
},
|
||||
{
|
||||
"name": "PyCharm Community Edition",
|
||||
"slug": "pycharm-ce/darwin",
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "0.83.0.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'PuTTY release 0.83 (x64)' AND publisher = 'Simon Tatham';"
|
||||
},
|
||||
"installer_url": "https://the.earth.li/~sgtatham/putty/0.83/w64/putty-64bit-0.83-installer.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
"uninstall_script_ref": "84bf0290",
|
||||
"sha256": "aa8e5036d973688f1e8622fbe9ab22e037346e0def0197bf5e7cdf37da4e223d",
|
||||
"default_categories": [
|
||||
"Productivity"
|
||||
],
|
||||
"upgrade_code": "{C9EAA861-2B72-4FAF-9FEE-EEB1AD5FD15E}"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
"84bf0290": "# Fleet uninstalls app by finding all related product codes for the specified upgrade code\n$inst = New-Object -ComObject \"WindowsInstaller.Installer\"\n$timeoutSeconds = 300 # 5 minute timeout per product\n\nforeach ($product_code in $inst.RelatedProducts(\"{C9EAA861-2B72-4FAF-9FEE-EEB1AD5FD15E}\")) {\n $process = Start-Process msiexec -ArgumentList @(\"/quiet\", \"/x\", $product_code, \"/norestart\") -PassThru\n \n # Wait for process with timeout\n $completed = $process.WaitForExit($timeoutSeconds * 1000)\n \n if (-not $completed) {\n Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue\n Exit 1603 # ERROR_UNINSTALL_FAILURE\n }\n \n # If the uninstall failed, bail\n if ($process.ExitCode -ne 0) {\n Write-Output \"Uninstall for $($product_code) exited $($process.ExitCode)\"\n Exit $process.ExitCode\n }\n}\n\n# All uninstalls succeeded; exit success\nExit 0\n",
|
||||
"8959087b": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n"
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -12,6 +12,7 @@ import Nextcloud from "./Nextcloud";
|
||||
import Notepad from "./Notepad++";
|
||||
import OktaVerify from "./OktaVerify";
|
||||
import Proxifier from "./Proxifier";
|
||||
import Putty from "./Putty";
|
||||
import SevenZip from "./7Zip";
|
||||
import Abstract from "./Abstract";
|
||||
import AcrobatReader from "./AcrobatReader";
|
||||
@@ -408,6 +409,7 @@ export const SOFTWARE_NAME_TO_ICON_MAP = {
|
||||
"proton mail": ProtonMail,
|
||||
protonvpn: ProtonVpn,
|
||||
proxifier: Proxifier,
|
||||
putty: Putty,
|
||||
"pycharm ce": PyCharmCe,
|
||||
pycharm: PyCharm,
|
||||
quip: Quip,
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 7.1 KiB |
Reference in New Issue
Block a user