From 3a597c949c0802bc8abe1e46fb366aefe0e20ab1 Mon Sep 17 00:00:00 2001 From: n4l5u0r <59141606+n4l5u0r@users.noreply.github.com> Date: Tue, 10 Feb 2026 09:07:49 +0100 Subject: [PATCH 1/2] Update Installomator.sh with new application labels for Windsurf, ApE, DCP-o-matic 2, Hudl Sportscode, Studio, Synergy Baseball, Synergy Basketball, Synergy Editor, and Synergy Video Express. Adjust version date to 2026-02-10 in Installomator.sh. Add Windsurf label script in fragments. Update Labels.txt to include Windsurf. --- Installomator.sh | 221 +++++++++++++++++++---------------- Labels.txt | 1 + fragments/labels/windsurf.sh | 15 +++ 3 files changed, 134 insertions(+), 103 deletions(-) create mode 100644 fragments/labels/windsurf.sh diff --git a/Installomator.sh b/Installomator.sh index 707c82328..6b0194848 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -357,7 +357,7 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then fi fi VERSION="10.8" -VERSIONDATE="2026-01-27" +VERSIONDATE="2026-02-10" # MARK: Functions @@ -1653,6 +1653,78 @@ valuesfromarguments) appNewVersion=$(curl -fs -L https://support.8x8.com/cloud-phone-service/voice/work-desktop/download-8x8-work-for-desktop | grep -m 1 -o "https.*dmg" | sed 's/\"//' | awk '{print $1}' | sed -E 's/.*-v([0-9\.]*)[-\.]*.*/\1/' ) expectedTeamID="FC967L3QRG" ;; +ape) + name="ApE" + type="dmg" + downloadURL="https://jorgensen.biology.utah.edu/wayned/ape/Download/Mac/ApE_OSX_modern_current.dmg" + appNewVersion="$(curl -fsL "https://jorgensen.biology.utah.edu/wayned/ape/" | grep -Eo 'ApE \(v[0-9]+\.[0-9]+\.[0-9]+' | sed -E 's/ApE \(v//')" + expectedTeamID="F5459JB4SG" + appName="ApE.app" + blockingProcesses=( "ApE" ) + ;; +dcp-o-matic|dcpomatic|dcp-o-matic2|dcpomatic2) + name="DCP-o-matic 2" + type="dmg" + appNewVersion=$(curl -fs https://dcpomatic.com/download | grep "Stable release: " | awk -F '

' '{print $1}' | grep -o -e "[0-9.]*") + downloadURL="https://dcpomatic.com/dl.php?id=osx-10.10-main&version=$appNewVersion&paid=0" + versionKey="CFBundleVersion" + expectedTeamID="R82DXSR997" + ;; +hudlsportscode) + name="Hudl Sportscode" + type="appInDmgInZip" + appNewVersion=$(curl -fs https://www.hudl.com/downloads/elite | grep -A 1 "Download Hudl Sportscode" | grep -o -e "[0-9.]*") + downloadURL="https://sportscode64-updates.s3.amazonaws.com/PublicReleaseDmgs/HudlSportscode-$appNewVersion.dmg.zip" + versionKey="CFBundleVersion" + expectedTeamID="4M6T2C723P" + ;; +hudlstudio) + name="Studio" + type="dmg" + appNewVersion=$(curl -fs https://www.hudl.com/downloads/elite | grep -A 1 "Download Studio" | grep -o -e "[0-9.]*") + downloadURL="https://studio-releases.s3.amazonaws.com/Studio-$appNewVersion.dmg" + versionKey="CFBundleVersion" + expectedTeamID="2YLQ7PASUE" + ;; +synergybaseball) + name="Synergy Baseball" + type="dmg" + downloadURL="$( echo https://www.synergysportstech.com/baseballclient/MacOS/$(curl -s https://www.synergysportstech.com/baseballclient/MacOS/default.htm | grep dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}') )" + appNewVersion=$(curl -fs https://www.synergysportstech.com/baseballclient/MacOS/default.htm | grep Version: | grep -o -e "[0-9.]*") + versionKey="CFBundleVersion" + expectedTeamID="BATB6XS52B" + ;; + +synergybasketball) + name="Synergy Basketball" + type="dmg" + downloadURL="$( echo https://www.synergysportstech.com/Apps/Basketball/production/macOS/$(curl -s https://www.synergysportstech.com/Apps/Basketball/production/macOS/default.htm | grep dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}') )" + appNewVersion=$(curl -fs https://www.synergysportstech.com/Apps/Basketball/production/macOS/default.htm | grep Version: | grep -o -e "[0-9.]*") + versionKey="CFBundleVersion" + expectedTeamID="BATB6XS52B" + ;; +synergyeditor|synergyeditorbasketball) + name="Synergy Editor" + type="dmg" + if [[ "$(arch)" == "arm64" ]]; then + downloadURL=$( echo https://www.synergysportstech.com/apps/editor/basketball/macos/$(curl -s https://www.synergysportstech.com/apps/editor/basketball/macos/ | grep arm64.dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}' )) + else + downloadURL=$( echo https://www.synergysportstech.com/apps/editor/basketball/macos/$(curl -s https://www.synergysportstech.com/apps/editor/basketball/macos/ | grep x64.dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}' )) + fi + appNewVersion=$(curl -fs https://www.synergysportstech.com/apps/editor/basketball/macos/default.html | grep Version: | grep -o -e "[0-9.]*") + versionKey="CFBundleShortVersionString" + expectedTeamID="BATB6XS52B" + ;; +synergyvideoexpress) + name="Synergy Video Express" + type="dmg" + relativeDownloadURL="$(curl -fsL https://www.synergysportstech.com/apps/videoexpress/production/macOS/default.htm | grep -Eo 'Synergy_Video_Express_[^"]+\.dmg' | head -1)" + downloadURL="https://www.synergysportstech.com/apps/videoexpress/production/macOS/${relativeDownloadURL}" + appNewVersion=$(echo "$relativeDownloadURL" | sed -E 's/.*_([0-9]+_[0-9]+_[0-9]+_[0-9]+)\.dmg/\1/' | tr '_' '.') + expectedTeamID="BATB6XS52B" + appName="Synergy Video Express.app" + blockingProcesses=( "Synergy Video Express" ) + ;; abetterfinderrename11) name="A Better Finder Rename 11" type="dmg" @@ -2190,15 +2262,6 @@ apachenetbeans) downloadURL="https://dlcdn.apache.org/netbeans/netbeans-installers/"${appNewVersion}"/Apache-NetBeans-"${appNewVersion}".pkg" expectedTeamID="2GLGAFWEQD" ;; -ape) - name="ApE" - type="dmg" - downloadURL="https://jorgensen.biology.utah.edu/wayned/ape/Download/Mac/ApE_OSX_modern_current.dmg" - appNewVersion="$(curl -fsL "https://jorgensen.biology.utah.edu/wayned/ape/" | grep -Eo 'ApE \(v[0-9]+\.[0-9]+\.[0-9]+' | sed -E 's/ApE \(v//')" - expectedTeamID="F5459JB4SG" - appName="ApE.app" - blockingProcesses=( "ApE" ) - ;; apparency) name="Apparency" type="dmg" @@ -3680,14 +3743,6 @@ dbeaverce) expectedTeamID="42B6MDKMW8" blockingProcesses=( dbeaver ) ;; -dcp-o-matic|dcpomatic|dcp-o-matic2|dcpomatic2) - name="DCP-o-matic 2" - type="dmg" - appNewVersion=$(curl -fs https://dcpomatic.com/download | grep "Stable release: " | awk -F '

' '{print $1}' | grep -o -e "[0-9.]*") - downloadURL="https://dcpomatic.com/dl.php?id=osx-10.10-main&version=$appNewVersion&paid=0" - versionKey="CFBundleVersion" - expectedTeamID="R82DXSR997" - ;; debookee) name="Debookee" type="zip" @@ -4365,6 +4420,16 @@ findanyfile) appNewVersion=$(curl -fs "https://findanyfile.app/appcast2.php" | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | cut -d '"' -f2) expectedTeamID="25856V4B4X" ;; +firefox) + name="Firefox" + type="dmg" + downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US" + firefoxVersions=$(curl -fs "https://product-details.mozilla.org/1.0/firefox_versions.json") + appNewVersion=$(getJSONValue "$firefoxVersions" "LATEST_FIREFOX_VERSION") + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ + ;; firefox_da) name="Firefox" type="dmg" @@ -4402,16 +4467,6 @@ firefox_intl) blockingProcesses=( firefox ) printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ ;; -firefox) - name="Firefox" - type="dmg" - downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US" - firefoxVersions=$(curl -fs "https://product-details.mozilla.org/1.0/firefox_versions.json") - appNewVersion=$(getJSONValue "$firefoxVersions" "LATEST_FIREFOX_VERSION") - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ - ;; firefoxdeveloperedition) name="Firefox Developer Edition" type="dmg" @@ -4419,6 +4474,16 @@ firefoxdeveloperedition) appNewVersion=$(curl -fsIL "https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=osx&lang=en-US&_gl=1*1g4sufp*_ga*OTAwNTc3MjE4LjE2NTM2MDIwODM.*_ga_MQ7767QQQW*MTY1NDcyNTYyNy40LjEuMTY1NDcyNzA2MS4w" | grep -i ^location | cut -d "/" -f7) expectedTeamID="43AQ936H96" ;; +firefoxesr|\ +firefoxesrpkg) + name="Firefox" + type="pkg" + downloadURL="https://download.mozilla.org/?product=firefox-esr-pkg-latest-ssl&os=osx" + firefoxVersions=$(curl -fs "https://product-details.mozilla.org/1.0/firefox_versions.json") + appNewVersion=$(getJSONValue "$firefoxVersions" "FIREFOX_ESR") + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + ;; firefoxesr_intl) # This label will try to figure out the selected language of the user, # and install corrosponding version of Firefox ESR @@ -4446,13 +4511,12 @@ firefoxesr_intl) blockingProcesses=( firefox ) printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ ;; -firefoxesr|\ -firefoxesrpkg) +firefoxpkg) name="Firefox" type="pkg" - downloadURL="https://download.mozilla.org/?product=firefox-esr-pkg-latest-ssl&os=osx" + downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US" firefoxVersions=$(curl -fs "https://product-details.mozilla.org/1.0/firefox_versions.json") - appNewVersion=$(getJSONValue "$firefoxVersions" "FIREFOX_ESR") + appNewVersion=$(getJSONValue "$firefoxVersions" "LATEST_FIREFOX_VERSION") expectedTeamID="43AQ936H96" blockingProcesses=( firefox ) ;; @@ -4484,15 +4548,6 @@ firefoxpkg_intl) expectedTeamID="43AQ936H96" blockingProcesses=( firefox ) ;; -firefoxpkg) - name="Firefox" - type="pkg" - downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US" - firefoxVersions=$(curl -fs "https://product-details.mozilla.org/1.0/firefox_versions.json") - appNewVersion=$(getJSONValue "$firefoxVersions" "LATEST_FIREFOX_VERSION") - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - ;; flameshot) # Flameshot - Powerful screenshot tool (signed macOS build from blooo-io fork) # https://github.com/blooo-io/flameshot @@ -5097,22 +5152,6 @@ huddly) appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i '^content-disposition' | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+)-.*/\1/g')" expectedTeamID="J659R47HZT" ;; -hudlsportscode) - name="Hudl Sportscode" - type="appInDmgInZip" - appNewVersion=$(curl -fs https://www.hudl.com/downloads/elite | grep -A 1 "Download Hudl Sportscode" | grep -o -e "[0-9.]*") - downloadURL="https://sportscode64-updates.s3.amazonaws.com/PublicReleaseDmgs/HudlSportscode-$appNewVersion.dmg.zip" - versionKey="CFBundleVersion" - expectedTeamID="4M6T2C723P" - ;; -hudlstudio) - name="Studio" - type="dmg" - appNewVersion=$(curl -fs https://www.hudl.com/downloads/elite | grep -A 1 "Download Studio" | grep -o -e "[0-9.]*") - downloadURL="https://studio-releases.s3.amazonaws.com/Studio-$appNewVersion.dmg" - versionKey="CFBundleVersion" - expectedTeamID="2YLQ7PASUE" - ;; hype) name="Hype4" type="dmg" @@ -9487,45 +9526,6 @@ sync) expectedTeamID="7QR39CMJ3W" blockingProcesses=( "Sync" "sync-worker.exe" ) ;; -synergybaseball) - name="Synergy Baseball" - type="dmg" - downloadURL="$( echo https://www.synergysportstech.com/baseballclient/MacOS/$(curl -s https://www.synergysportstech.com/baseballclient/MacOS/default.htm | grep dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}') )" - appNewVersion=$(curl -fs https://www.synergysportstech.com/baseballclient/MacOS/default.htm | grep Version: | grep -o -e "[0-9.]*") - versionKey="CFBundleVersion" - expectedTeamID="BATB6XS52B" - ;; - -synergybasketball) - name="Synergy Basketball" - type="dmg" - downloadURL="$( echo https://www.synergysportstech.com/Apps/Basketball/production/macOS/$(curl -s https://www.synergysportstech.com/Apps/Basketball/production/macOS/default.htm | grep dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}') )" - appNewVersion=$(curl -fs https://www.synergysportstech.com/Apps/Basketball/production/macOS/default.htm | grep Version: | grep -o -e "[0-9.]*") - versionKey="CFBundleVersion" - expectedTeamID="BATB6XS52B" - ;; -synergyeditor|synergyeditorbasketball) - name="Synergy Editor" - type="dmg" - if [[ "$(arch)" == "arm64" ]]; then - downloadURL=$( echo https://www.synergysportstech.com/apps/editor/basketball/macos/$(curl -s https://www.synergysportstech.com/apps/editor/basketball/macos/ | grep arm64.dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}' )) - else - downloadURL=$( echo https://www.synergysportstech.com/apps/editor/basketball/macos/$(curl -s https://www.synergysportstech.com/apps/editor/basketball/macos/ | grep x64.dmg | grep -o 'href="[^"]*' | head -1 | awk -F '="' '{print $NF}' )) - fi - appNewVersion=$(curl -fs https://www.synergysportstech.com/apps/editor/basketball/macos/default.html | grep Version: | grep -o -e "[0-9.]*") - versionKey="CFBundleShortVersionString" - expectedTeamID="BATB6XS52B" - ;; -synergyvideoexpress) - name="Synergy Video Express" - type="dmg" - relativeDownloadURL="$(curl -fsL https://www.synergysportstech.com/apps/videoexpress/production/macOS/default.htm | grep -Eo 'Synergy_Video_Express_[^"]+\.dmg' | head -1)" - downloadURL="https://www.synergysportstech.com/apps/videoexpress/production/macOS/${relativeDownloadURL}" - appNewVersion=$(echo "$relativeDownloadURL" | sed -E 's/.*_([0-9]+_[0-9]+_[0-9]+_[0-9]+)\.dmg/\1/' | tr '_' '.') - expectedTeamID="BATB6XS52B" - appName="Synergy Video Express.app" - blockingProcesses=( "Synergy Video Express" ) - ;; synologyactivebackupforbusinessagent) name="Synology Active Backup for Business Agent" type="pkgInDmg" @@ -9792,6 +9792,13 @@ thonny) appNewVersion="$(versionFromGit thonny thonny)" expectedTeamID="2SA9D4CVU8" ;; +thunderbird) + name="Thunderbird" + type="dmg" + appNewVersion=$(curl -I -s "https://download.mozilla.org/?product=thunderbird-esr-latest&os=osx&lang=en-US" | grep -i location | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -n1 ) + downloadURL="https://download.mozilla.org/?product=thunderbird-esr-latest&os=osx&lang=en-US" + expectedTeamID="43AQ936H96" + ;; thunderbird_intl) # This label will try to figure out the selected language of the user, # and install corrosponding version of Thunderbird @@ -9817,13 +9824,6 @@ thunderbird_intl) expectedTeamID="43AQ936H96" blockingProcesses=( thunderbird ) ;; -thunderbird) - name="Thunderbird" - type="dmg" - appNewVersion=$(curl -I -s "https://download.mozilla.org/?product=thunderbird-esr-latest&os=osx&lang=en-US" | grep -i location | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -n1 ) - downloadURL="https://download.mozilla.org/?product=thunderbird-esr-latest&os=osx&lang=en-US" - expectedTeamID="43AQ936H96" - ;; thunderbirdesr) name="Thunderbird" type="dmg" @@ -10467,6 +10467,21 @@ whimsical) blockingProcesses=( "Whimsical" ) ;; +windsurf) + name="Windsurf" + type="dmg" + # Version and download URL from releases page: https://windsurf.com/editor/releases + # Stable builds are served from windsurf-stable.codeiumdata.com (darwin-arm64-dmg or darwin-x64-dmg). + if [[ $(arch) == "arm64" ]]; then + archiveName="darwin-arm64-dmg" + else + archiveName="darwin-x64-dmg" + fi + downloadURL=$(curl -fsL "https://windsurf.com/editor/releases" | grep -oE "https://windsurf-stable\.codeiumdata\.com/${archiveName}/[^\"<>\\]*\.dmg" | head -1 | sed 's/\\$//') + appNewVersion=$(curl -fsL "https://windsurf.com/editor/releases" | grep -oE "Windsurf-darwin-(arm64|x64)-[0-9]+\.[0-9]+\.[0-9]+\.dmg" | head -1 | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+)\.dmg/\1/') + expectedTeamID="83Z2LHX6XW" + blockingProcesses=( "Windsurf" ) + ;; wireshark) name="Wireshark" type="dmg" diff --git a/Labels.txt b/Labels.txt index 89f391cad..c1e6644c0 100644 --- a/Labels.txt +++ b/Labels.txt @@ -980,6 +980,7 @@ weprint whatroute whatsapp whimsical +windsurf wireshark wordservice workbrew diff --git a/fragments/labels/windsurf.sh b/fragments/labels/windsurf.sh new file mode 100644 index 000000000..4143863ca --- /dev/null +++ b/fragments/labels/windsurf.sh @@ -0,0 +1,15 @@ +windsurf) + name="Windsurf" + type="dmg" + # Version and download URL from releases page: https://windsurf.com/editor/releases + # Stable builds are served from windsurf-stable.codeiumdata.com (darwin-arm64-dmg or darwin-x64-dmg). + if [[ $(arch) == "arm64" ]]; then + archiveName="darwin-arm64-dmg" + else + archiveName="darwin-x64-dmg" + fi + downloadURL=$(curl -fsL "https://windsurf.com/editor/releases" | grep -oE "https://windsurf-stable\.codeiumdata\.com/${archiveName}/[^\"<>\\]*\.dmg" | head -1 | sed 's/\\$//') + appNewVersion=$(curl -fsL "https://windsurf.com/editor/releases" | grep -oE "Windsurf-darwin-(arm64|x64)-[0-9]+\.[0-9]+\.[0-9]+\.dmg" | head -1 | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+)\.dmg/\1/') + expectedTeamID="83Z2LHX6XW" + blockingProcesses=( "Windsurf" ) + ;; From 52f55aba79b96a2ed9dce353ba85a02a88d4f40c Mon Sep 17 00:00:00 2001 From: n4l5u0r <59141606+n4l5u0r@users.noreply.github.com> Date: Tue, 10 Feb 2026 09:09:52 +0100 Subject: [PATCH 2/2] Update Installomator.sh to set version to blooo-v10.8.6 and maintain version date as 2026-02-10. --- Installomator.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index 6b0194848..0f39c4ad9 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -356,7 +356,7 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then rosetta2=no fi fi -VERSION="10.8" +VERSION="blooo-v10.8.6" VERSIONDATE="2026-02-10" # MARK: Functions