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
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jdk-11.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JDK 11",
"slug": "ibm-semeru-jdk-11/windows",
"package_identifier": "IBM.Semeru.11.JDK",
"unique_identifier": "IBM Semeru Runtime Open Edition (JDK)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '11.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jdk-17.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JDK 17",
"slug": "ibm-semeru-jdk-17/windows",
"package_identifier": "IBM.Semeru.17.JDK",
"unique_identifier": "IBM Semeru Runtime Open Edition (JDK)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '17.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jdk-21.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JDK 21",
"slug": "ibm-semeru-jdk-21/windows",
"package_identifier": "IBM.Semeru.21.JDK",
"unique_identifier": "IBM Semeru Runtime Open Edition (JDK)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '21.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jdk-8.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JDK 8",
"slug": "ibm-semeru-jdk-8/windows",
"package_identifier": "IBM.Semeru.8.JDK",
"unique_identifier": "IBM Semeru Runtime Open Edition (JDK)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '8.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jre-11.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JRE 11",
"slug": "ibm-semeru-jre-11/windows",
"package_identifier": "IBM.Semeru.11.JRE",
"unique_identifier": "IBM Semeru Runtime Open Edition (JRE)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '11.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jre-17.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JRE 17",
"slug": "ibm-semeru-jre-17/windows",
"package_identifier": "IBM.Semeru.17.JRE",
"unique_identifier": "IBM Semeru Runtime Open Edition (JRE)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '17.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jre-21.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JRE 21",
"slug": "ibm-semeru-jre-21/windows",
"package_identifier": "IBM.Semeru.21.JRE",
"unique_identifier": "IBM Semeru Runtime Open Edition (JRE)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '21.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/ibm-semeru-jre-8.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "IBM Semeru Runtime Open Edition JRE 8",
"slug": "ibm-semeru-jre-8/windows",
"package_identifier": "IBM.Semeru.8.JRE",
"unique_identifier": "IBM Semeru Runtime Open Edition (JRE)",
"exists_query": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '8.%';",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
13 changes: 13 additions & 0 deletions ee/maintained-apps/inputs/winget/imageglass.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "ImageGlass",
"slug": "imageglass/windows",
"package_identifier": "DuongDieuPhap.ImageGlass",
"unique_identifier": "ImageGlass",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"install_script_path": "ee/maintained-apps/inputs/winget/scripts/imageglass_install.ps1",
"default_categories": [
"Productivity"
]
}
16 changes: 16 additions & 0 deletions ee/maintained-apps/inputs/winget/imazing-heic-converter.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "iMazing HEIC Converter",
"slug": "imazing-heic-converter/windows",
"package_identifier": "DigiDNA.iMazingHEICConverter",
"unique_identifier": "iMazing HEIC Converter",
"fuzzy_match_name": "iMazing HEIC Converter%",
"program_publisher": "DigiDNA",
"installer_arch": "x64",
"installer_type": "exe",
"installer_scope": "machine",
"install_script_path": "ee/maintained-apps/inputs/winget/scripts/imazing-heic-converter_install.ps1",
"uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/imazing-heic-converter_uninstall.ps1",
"default_categories": [
"Productivity"
]
}
15 changes: 15 additions & 0 deletions ee/maintained-apps/inputs/winget/infix-pdf-editor.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "Infix PDF Editor",
"slug": "infix-pdf-editor/windows",
"package_identifier": "Iceni.InfixPDFEditor",
"unique_identifier": "Infix PDF Editor",
"program_publisher": "Iceni Technology",
"installer_arch": "x86",
"installer_type": "exe",
"installer_scope": "machine",
"install_script_path": "ee/maintained-apps/inputs/winget/scripts/infix-pdf-editor_install.ps1",
"uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/infix-pdf-editor_uninstall.ps1",
"default_categories": [
"Productivity"
]
}
16 changes: 16 additions & 0 deletions ee/maintained-apps/inputs/winget/install4j.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "install4j",
"slug": "install4j/windows",
"package_identifier": "ej-technologies.install4j.11",
"unique_identifier": "install4j",
"fuzzy_match_name": "install4j%",
"program_publisher": "ej-technologies GmbH",
"installer_arch": "x64",
"installer_type": "exe",
"installer_scope": "machine",
"install_script_path": "ee/maintained-apps/inputs/winget/scripts/install4j_install.ps1",
"uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/install4j_uninstall.ps1",
"default_categories": [
"Developer tools"
]
}
16 changes: 16 additions & 0 deletions ee/maintained-apps/inputs/winget/irfanview.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "IrfanView",
"slug": "irfanview/windows",
"package_identifier": "IrfanSkiljan.IrfanView",
"unique_identifier": "IrfanView",
"fuzzy_match_name": "IrfanView%",
"program_publisher": "Irfan Skiljan",
"installer_arch": "x64",
"installer_type": "exe",
"installer_scope": "machine",
"install_script_path": "ee/maintained-apps/inputs/winget/scripts/irfanview_install.ps1",
"uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/irfanview_uninstall.ps1",
"default_categories": [
"Productivity"
]
}
14 changes: 14 additions & 0 deletions ee/maintained-apps/inputs/winget/ironpython.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "IronPython 3",
"slug": "ironpython/windows",
"package_identifier": "Microsoft.IronPython.3",
"unique_identifier": "IronPython 3",
"fuzzy_match_name": "IronPython 3%",
"program_publisher": ".NET Foundation",
"installer_arch": "x64",
"installer_type": "msi",
"installer_scope": "machine",
"default_categories": [
"Developer tools"
]
}
16 changes: 16 additions & 0 deletions ee/maintained-apps/inputs/winget/isobuster.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "IsoBuster",
"slug": "isobuster/windows",
"package_identifier": "SmartProjects.IsoBuster",
"unique_identifier": "IsoBuster",
"fuzzy_match_name": "IsoBuster%",
"program_publisher": "Smart Projects",
"installer_arch": "x64",
"installer_type": "exe",
"installer_scope": "machine",
"install_script_path": "ee/maintained-apps/inputs/winget/scripts/isobuster_install.ps1",
"uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/isobuster_uninstall.ps1",
"default_categories": [
"Productivity"
]
}
23 changes: 23 additions & 0 deletions ee/maintained-apps/inputs/winget/scripts/imageglass_install.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Learn more about install scripts:
# http://fleetdm.com/learn-more-about/install-scripts
#
# The ImageGlass MSI is dual-scope (ALLUSERS=2). Pass ALLUSERS=1 to force a
# per-machine install under Fleet's SYSTEM context.

$logFile = "${env:TEMP}/fleet-install-software.log"

try {

$installProcess = Start-Process msiexec.exe `
-ArgumentList "/quiet /norestart /lv ${logFile} ALLUSERS=1 /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait

Get-Content $logFile -Tail 500

if ($installProcess.ExitCode -eq 3010 -or $installProcess.ExitCode -eq 1641) { Exit 0 }
Exit $installProcess.ExitCode

} catch {
Write-Host "Error: $_"
Exit 1
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Learn more about .exe install scripts:
# http://fleetdm.com/learn-more-about/exe-install-scripts
#
# iMazing HEIC Converter ships an Inno Setup 6.1 installer. Its [Run] section
# has a postinstall entry that launches "{app}\iMazing HEIC Converter.exe" and
# is NOT flagged "skipifsilent", so the GUI starts even under /VERYSILENT.
# PowerShell's "Start-Process -Wait" waits for the process AND its descendants,
# so that lingering GUI keeps the install step blocked on a headless host even
# though the install itself succeeds.
#
# So we pass "/nolaunch" (a switch the installer's own script parses, alongside
# "/silent" and "/verysilent") to keep the postinstall launch from firing, wait
# on the Setup process ITSELF rather than its descendants, and stop the GUI if
# it started anyway. "/nolaunch" is lowercase to match the literal the
# installer script compares against.

$exeFilePath = "${env:INSTALLER_PATH}"

$timeoutSeconds = 300

# Recursively stop the Setup process and any children (e.g. Inno's setup.tmp
# helper) so the installer file lock is released.
function Stop-ProcessTree {
param([int]$ParentId)
Get-CimInstance Win32_Process -Filter "ParentProcessId = $ParentId" -ErrorAction SilentlyContinue |
ForEach-Object { Stop-ProcessTree -ParentId $_.ProcessId }
Stop-Process -Id $ParentId -Force -ErrorAction SilentlyContinue
}

try {
if (-not (Test-Path $exeFilePath)) {
Write-Host "Error: Installer file not found at: $exeFilePath"
Exit 1
}

# NOTE: intentionally launched WITHOUT -Wait; see comment above.
$process = Start-Process -FilePath "$exeFilePath" `
-ArgumentList "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /nolaunch" -PassThru
Write-Host "Launched iMazing HEIC Converter installer (PID: $($process.Id))"

$exited = $process.WaitForExit($timeoutSeconds * 1000)

# Stop the app in case the installer launched it anyway, so it can't hold a
# file lock or interfere with the rest of the run. This only ends the
# running process; it does not uninstall anything.
Stop-Process -Name "iMazing HEIC Converter" -Force -ErrorAction SilentlyContinue

if (-not $exited) {
Write-Host "Installer did not exit within ${timeoutSeconds}s; stopping it."
Stop-ProcessTree -ParentId $process.Id
Exit 1
}

$exitCode = $process.ExitCode
Write-Host "Install exit code: $exitCode"

if ($exitCode -eq 3010 -or $exitCode -eq 1641) { Exit 0 }
Exit $exitCode

} catch {
Write-Host "Error: $_"
Exit 1
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Uninstalls iMazing HEIC Converter (Inno Setup). Matches the ARP entry by DisplayName prefix and runs its silent uninstaller.
$softwareNameLike = "iMazing HEIC Converter*"

$machineKey = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'
$machineKey32on64 = 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'

$exitCode = 0

try {

[array]$uninstallKeys = Get-ChildItem `
-Path @($machineKey, $machineKey32on64) `
-ErrorAction SilentlyContinue |
ForEach-Object { Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue }

$foundUninstaller = $false
foreach ($key in $uninstallKeys) {
if ($key.DisplayName -like $softwareNameLike) {
$foundUninstaller = $true
$uninstallCommand = if ($key.QuietUninstallString) { $key.QuietUninstallString } else { $key.UninstallString }
$uninstallArgs = "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART"

$splitArgs = $uninstallCommand.Split('"')
if ($splitArgs.Length -gt 1) {
if ($splitArgs.Length -eq 3) {
$uninstallArgs = "$( $splitArgs[2] ) $uninstallArgs".Trim()
} elseif ($splitArgs.Length -gt 3) {
Throw "Uninstall command contains multiple quoted strings. Update the script.`nUninstall command: $uninstallCommand"
}
$uninstallCommand = $splitArgs[1]
}
Write-Host "Uninstall command: $uninstallCommand"
Write-Host "Uninstall args: $uninstallArgs"

$processOptions = @{ FilePath = $uninstallCommand; PassThru = $true; Wait = $true }
if ($uninstallArgs -ne '') { $processOptions.ArgumentList = "$uninstallArgs" }
$process = Start-Process @processOptions
$exitCode = $process.ExitCode
Write-Host "Uninstall exit code: $exitCode"
break
}
}

if (-not $foundUninstaller) {
Write-Host "Uninstaller for '$softwareNameLike' not found."
$exitCode = 1
}

} catch {
Write-Host "Error: $_"
$exitCode = 1
}

if ($exitCode -eq 3010 -or $exitCode -eq 1641) { Exit 0 }
Exit $exitCode
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Learn more about .exe install scripts:
# http://fleetdm.com/learn-more-about/exe-install-scripts
#
# Infix PDF Editor uses an Inno Setup installer; these switches run it silently machine-wide.

$exeFilePath = "${env:INSTALLER_PATH}"

try {

$process = Start-Process -FilePath "$exeFilePath" `
-ArgumentList "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART" -PassThru -Wait
$exitCode = $process.ExitCode
Write-Host "Install exit code: $exitCode"

if ($exitCode -eq 3010 -or $exitCode -eq 1641) { Exit 0 }
Exit $exitCode

} catch {
Write-Host "Error: $_"
Exit 1
}
Loading
Loading