general cleanup in prep for release

This commit is contained in:
Armin Briegel
2022-05-16 20:12:48 +02:00
parent 08fd69ae7b
commit ed8e9ef913
15 changed files with 607 additions and 98 deletions

View File

@@ -1,6 +1,75 @@
## v9.2
**Note**: Both Google and Mozilla recommend using the pkg installers instead of the dmg downloads for managed deployments. So far, Installomator has provided labels for both. (`googlechrome` and `googlechromepkg` or `firefox` and `firefoxpkg`, respectively) Since there are problems with the dmg downloads, a future release of Installomator will _disable_ the `firefox` and `googlechrome` dmg labels. You should switch to using `googlechromepkg` and `firefoxpkg` labels instead.
- bug fix (#434)
- documentation updates (#485, #494)
- new labels:
- 1password8 (#514)
- UltimakerCura
- androidstudio (#547)
- atextlegacy (#464)
- camtasia2019, camtasia2020 (#499)
- clue, cluefull (#481)
- craftmanagerforsketch
- displaylinkmanager (#448)
- drawio (#480)
- duckduckgo
- egnytewebedit (#512)
- filezilla (#522)
- firefoxpkg_intl
- flycut (#501)
- fontexplorer (#523)
- hype (#524)
- idrive (#507), idrivethin (#509)
- imageoptim (#525)
- linear (#519)
- macoslaps (#502)
- mightymike
- mindmanager (#479)
- pika (#526)
- propresenter7 (#394)
- qgis-pr
- shottr (#516)
- slab (#487)
- snagit2019, snagit2020, snagit2021 (#498)
- sonobus (#490)
- talkdeskcxcloud (#452)
- thunderbird_intl (#497)
- unnaturalscrollwheels (#503)
- wechat (#510)
- xeroxworkcentre7800 (#527)
- zohoworkdrivegenie
- updated labels
- adobereaderdc-update, adobereaderdc (#503)
- amazoncorretto8jdk (#461)
- camtasia (#499)
- citrixworkspace (#508)
- dbeaverce (#450)
- dropbox
- firefox
- firefox_da
- firefox_intl (#495)
- firefoxesr_intl (#496)
- firefoxpkg
- googlechrome, googlechromepkg (#484)
- gpgsuite (#465)
- grammarly (#515)
- logitechoptions (#478)
- onlyofficedesktop (#454)
- postman (#458)
- rancherdesktop (#463)
- remotedesktopmanagerenterprise
- remotedesktopmanagerfree
- ringcentralapp (#492)
- sketch
- snagit (#498)
- talkdeskcallbar (#453)
## v9.1
**Note**: Both Google and Mozilla recommend using the pkg installers instead of the dmg downloads for managed deployments. So far, Installomator has provided labels for both. (`googlechrome` and `googlechromepkg` or `firefox` and `firefoxpkg`, respectively) Since there are problems with the dmg downloads, a future release of Installomator will _disable_ the `firefox` and `googlechrome` dmg labels. You should switch to using the respective pkg labels instead.
- added option for Microsoft Endpoint Manager (Intune) to `LOGO` (#446)
- minor fixes (#427, #434, #436)

View File

@@ -238,7 +238,7 @@ IGNORE_DND_APPS=""
# - updateToolArguments:
# When Installomator detects an existing installation of the application,
# and the updateTool variable is set
# $updateTool $updateArguments
# $updateTool $updateArguments
# Will be run instead of of downloading and installing a complete new version.
# Use this when the updateTool does differential and optimized downloads.
# e.g. msupdate on various Microsoft labels
@@ -253,7 +253,7 @@ IGNORE_DND_APPS=""
# We need to define `name` for the installed app (to be version checked), as well as
# `installerTool` for the installer app (if named differently than `name`. Installomator
# will add the path to the folder/disk image with the binary, and it will be called like this:
`$CLIInstaller $CLIArguments`
# $CLIInstaller $CLIArguments
# For most installations `CLIInstaller` should contain the `installerTool` for the CLI call
# (if its the same).
# We can support a whole range of other software titles by implementing this.
@@ -302,8 +302,8 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then
rosetta2=no
fi
fi
VERSION="9.1"
VERSIONDATE="2022-03-18"
VERSION="9.2"
VERSIONDATE="2022-05-16"
# MARK: Functions
@@ -549,8 +549,8 @@ getAppVersion() {
# printlog "App(s) found: ${applist}" DEBUG
# applist=$(mdfind "kind:application AND name:$appName" -0 )
fi
if [[ -z applist ]]; then
printlog "No previous app found" INFO
if [[ -z $applist ]]; then
printlog "No previous app found" WARN
else
printlog "App(s) found: ${applist}" INFO
fi
@@ -572,7 +572,7 @@ getAppVersion() {
if [[ -d "$installedAppPath"/Contents/_MASReceipt ]];then
printlog "Installed $appName is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace."
if [[ $IGNORE_APP_STORE_APPS == "yes" ]]; then
printlog "Replacing App Store apps, no matter the version"
printlog "Replacing App Store apps, no matter the version" WARN
appversion=0
else
cleanupAndExit 1 "App previously installed from App Store, and we respect that" ERROR
@@ -1387,7 +1387,7 @@ adobecreativeclouddesktop)
adobereaderdc-update)
name="Adobe Acrobat Reader DC"
type="pkgInDmg"
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDCUpd"$adobecurrent"_MUI.dmg)
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDC_"$adobecurrent"_MUI.dmg)
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
expectedTeamID="JQ525L2MZD"
@@ -1398,7 +1398,8 @@ adobereaderdc-install)
name="Adobe Acrobat Reader DC"
type="pkgInDmg"
packageID="com.adobe.acrobat.DC.reader.app.pkg.MUI"
downloadURL=$(curl --silent --fail -H "Sec-Fetch-Site: same-origin" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: en-US;q=0.9,en;q=0.8" -H "DNT: 1" -H "Sec-Fetch-Mode: cors" -H "X-Requested-With: XMLHttpRequest" -H "Referer: https://get.adobe.com/reader/enterprise/" -H "Accept: */*" "https://get.adobe.com/reader/webservices/json/standalone/?platform_type=Macintosh&platform_dist=OSX&platform_arch=x86-32&language=English&eventname=readerotherversions" | grep -Eo '"download_url":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
#downloadURL=$(curl --silent --fail -H "Sec-Fetch-Site: same-origin" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: en-US;q=0.9,en;q=0.8" -H "DNT: 1" -H "Sec-Fetch-Mode: cors" -H "X-Requested-With: XMLHttpRequest" -H "Referer: https://get.adobe.com/reader/enterprise/" -H "Accept: */*" "https://get.adobe.com/reader/webservices/json/standalone/?platform_type=Macintosh&platform_dist=OSX&platform_arch=x86-32&language=English&eventname=readerotherversions" | grep -Eo '"download_url":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDC_"$adobecurrent"_MUI.dmg)
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
expectedTeamID="JQ525L2MZD"
@@ -1467,8 +1468,13 @@ amazonchime)
amazoncorretto8jdk)
name="Amazon Corretto 8 JDK"
type="pkg"
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-aarch64-macos-jdk.pkg"
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
fi
expectedTeamID="94KV3E626L"
;;
amazonworkspaces)
@@ -1485,6 +1491,19 @@ androidfiletransfer)
downloadURL="https://dl.google.com/dl/androidjumper/mtp/current/AndroidFileTransfer.dmg"
expectedTeamID="EQHXZ8M8AV"
;;
androidstudio)
name="Android Studio"
type="dmg"
if [[ $(arch) == arm64 ]]; then
downloadURL=$(curl -fsL "https://developer.android.com/studio#downloads" | grep -i arm.dmg | head -2 | grep -o -i -E "https.*" | cut -d '"' -f1)
appNewVersion=$( echo "${downloadURL}" | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' )
elif [[ $(arch) == i386 ]]; then
downloadURL=$(curl -fsL "https://developer.android.com/studio#downloads" | grep -i mac.dmg | head -2 | grep -o -i -E "https.*" | cut -d '"' -f1)
appNewVersion=$( echo "${downloadURL}" | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' )
fi
expectedTeamID="EQHXZ8M8AV"
blockingProcesses=( androidstudio )
;;
anydesk)
name="AnyDesk"
type="dmg"
@@ -1580,12 +1599,12 @@ atext)
expectedTeamID="KHEMQ2FD9E"
;;
atextlegacy)
# credit: Gabe Marchan (gabemarchan.com - @darklink87)
name="aText"
type="dmg"
downloadURL="https://trankynam.com/atext/downloads/aTextLegacy.dmg"
expectedTeamID="KHEMQ2FD9E"
;;
# credit: Gabe Marchan (gabemarchan.com - @darklink87)
name="aText"
type="dmg"
downloadURL="https://trankynam.com/atext/downloads/aTextLegacy.dmg"
expectedTeamID="KHEMQ2FD9E"
;;
atom)
name="Atom"
type="zip"
@@ -1825,13 +1844,29 @@ camostudio)
# Camo Studio will ask for admin permissions to install som plug-ins. that has not been handled.
expectedTeamID="Q248YREB53"
;;
camtasia)
name="Camtasia 2020"
camtasia|\
camtasia2021)
name="Camtasia 2021"
type="dmg"
downloadURL=https://download.techsmith.com/camtasiamac/releases/Camtasia.dmg
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2021" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2021" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;
canva)
camtasia2019)
name="Camtasia 2019"
type="dmg"
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2019" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2019" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;
camtasia2020)
name="Camtasia 2020"
type="dmg"
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2020" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2020" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;
canva)
name="Canva"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
@@ -1861,7 +1896,7 @@ citrixworkspace)
name="Citrix Workspace"
type="pkgInDmg"
downloadURL="https:"$(curl -s -L "https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html#ctx-dl-eula-external" | grep "dmg?" | sed "s/.*rel=.\(.*\)..id=.*/\1/") # http://downloads.citrix.com/18823/CitrixWorkspaceApp.dmg?__gda__=1605791892_edc6786a90eb5197fb226861a8e27aa8
appNewVersion=$(curl -fs https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html | grep "<p>Version" | head -1 | cut -d " " -f1 | cut -d ";" -f2 | cut -d "." -f 1-3)
appNewVersion=$(curl -fs https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html | grep "<p>Version" | head -1 | awk '{print $2}' | cut -d "." -f 1-3)
expectedTeamID="S272Y5R93J"
;;
clevershare2)
@@ -1899,6 +1934,24 @@ cloudya)
appNewVersion="$(curl -fs https://www.nfon.com/de/service/downloads | grep -i -E -o "Cloudya Desktop App MAC [0-9.]*" | sed 's/^.*\ \([^ ]\{0,7\}\)$/\1/g')"
expectedTeamID="X26F74J8TH"
;;
clue)
#For personal use and students
name="Clue"
type="dmg"
downloadURL=$(curl -fsL https://clue.no/en/download | grep "For personal use and students:" | sed 's/.*href="//' | sed 's/".*//')
appNewVersion="$(echo "${downloadURL}" | sed -E 's/.*Clue*([0-9.]*)\..*/\1/g')"
versionKey="CFBundleVersion"
expectedTeamID="3NX6B9TB2F"
;;
cluefull)
#For companies and schools
name="Clue"
type="dmg"
downloadURL=$(curl -fsL https://clue.no/en/download | grep "For companies and schools:" | sed 's/.*href="//' | sed 's/".*//')
appNewVersion="$(echo "${downloadURL}" | sed -E 's/.*Clue*([0-9.]*)\F.*/\1/g')"
versionKey="CFBundleVersion"
expectedTeamID="3NX6B9TB2F"
;;
code42)
name="Code42"
type="pkgInDmg"
@@ -1941,6 +1994,13 @@ craftmanager)
appNewVersion="$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
expectedTeamID="VRXQSNCL5W"
;;
craftmanagerforsketch)
name="CraftManager"
type="zip"
downloadURL="https://craft-assets.invisionapp.com/CraftManager/production/CraftManager.zip"
appNewVersion=$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f2)
expectedTeamID="VRXQSNCL5W"
;;
cryptomator)
name="Cryptomator"
type="dmg"
@@ -1980,7 +2040,13 @@ darktable)
dbeaverce)
name="DBeaver"
type="dmg"
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos.dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos-aarch64.dmg"
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' | head -1)"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos.dmg"
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' | head -1)"
fi
expectedTeamID="42B6MDKMW8"
blockingProcesses=( dbeaver )
;;
@@ -2061,6 +2127,14 @@ diskspace)
appNewVersion="$(versionFromGit scriptingosx diskspace)"
expectedTeamID="JME5BW3F3R"
;;
displaylinkmanager)
name="DisplayLink Manager"
type="pkg"
#packageID="com.displaylink.displaylinkmanagerapp"
downloadURL=https://www.synaptics.com$(redirect=$(curl -sfL https://www.synaptics.com/products/displaylink-graphics/downloads/macos | grep 'class="download-link">Download' | head -n 1 | sed 's/.*href="//' | sed 's/".*//') && curl -sfL "https://www.synaptics.com$redirect" | grep Accept | head -n 1 | sed 's/.*href="//' | sed 's/".*//')
appNewVersion=$(curl -sfL https://www.synaptics.com/products/displaylink-graphics/downloads/macos | grep "Release:" | head -n 1 | cut -d ' ' -f2)
expectedTeamID="73YQY62QM3"
;;
docker)
name="Docker"
type="dmg"
@@ -2082,6 +2156,15 @@ dockutil)
expectedTeamID="Z5J8CJBUWC"
blockingProcesses=( NONE )
;;
drawio)
name="draw.io"
type="dmg"
archiveName="draw.io-universal-[0-9.]*.dmg"
downloadURL="$(downloadURLFromGit jgraph drawio-desktop)"
appNewVersion="$(versionFromGit jgraph drawio-desktop)"
expectedTeamID="UZEUFB4N53"
blockingProcesses=( draw.io )
;;
drift)
# credit Elena Ackley (@elenaelago)
name="Drift"
@@ -2093,8 +2176,19 @@ dropbox)
name="Dropbox"
type="dmg"
downloadURL="https://www.dropbox.com/download?plat=mac&full=1"
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*%20([0-9.]*)\.dmg/\1/g')
expectedTeamID="G7HH3F8CAK"
;;
duckduckgo)
name="DuckDuckGo"
type="dmg"
#downloadURL="https://staticcdn.duckduckgo.com/macos-desktop-browser/duckduckgo.dmg"
#downloadURL=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[last()]' 2>/dev/null | cut -d '"' -f2)
downloadURL=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | cut -d '"' -f2)
#appNewVersion=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:version)[last()]' 2>/dev/null | cut -d '"' -f2)
appNewVersion=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/sparkle:shortVersionString)[1]' 2>/dev/null | cut -d ">" -f2 | cut -d "<" -f1)
expectedTeamID="HKE973VLUW"
;;
easeusdatarecoverywizard)
# credit: Søren Theilgaard (@theilgaard)
name="EaseUS Data Recovery Wizard"
@@ -2118,6 +2212,15 @@ egnyte)
expectedTeamID="FELUD555VC"
blockingProcesses=( NONE )
;;
egnytewebedit)
name="EgnyteWebEdit"
type="pkg"
downloadURL="https://egnyte-cdn.egnyte.com/webedit/mac/en-us/latest/EgnyteWebEdit.pkg"
expectedTeamID="FELUD555VC"
appName="Egnyte WebEdit.app"
blockingProcesses=( NONE )
;;
element)
name="Element"
type="dmg"
@@ -2215,6 +2318,16 @@ figma)
appNewVersion="$(curl -fsL https://desktop.figma.com/mac/RELEASE.json | awk -F '"' '{ print $8 }')"
expectedTeamID="T8RA8NE3B7"
;;
filezilla)
name="FileZilla"
type="tbz"
packageID="org.filezilla-project.filezilla"
downloadURL=$(curl -fsL https://filezilla-project.org/download.php\?show_all=1 | grep macosx | head -n 1 | awk -F '"' '{print $2}' )
appNewVersion=$( curl -fsL https://filezilla-project.org/download.php\?show_all=1 | grep macosx | head -n 1 | awk -F '_' '{print $2}' )
expectedTeamID="5VPGKXL75N"
blockingProcesses=( NONE )
;;
findanyfile)
name="Find Any File"
type="zip"
@@ -2229,6 +2342,7 @@ firefox)
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
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"
@@ -2237,29 +2351,33 @@ firefox_da)
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
expectedTeamID="43AQ936H96"
blockingProcesses=( firefox )
printlog "WARNING for ERROR: Label firefox, firefox_da 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_intl)
# This label will try to figure out the selected language of the user,
# This label will try to figure out the selected language of the user,
# and install corrosponding version of Firefox
name="Firefox"
type="dmg"
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
printlog "Found language $userLanguage to be used for Firefox."
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep -o "=$userLanguage"; then
userLanguage=$(echo $userLanguage | cut -c 1-2)
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep "=$userLanguage"; then
userLanguage="en_US"
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
printlog "Found language $userLanguage to be used for $name."
releaseURL="https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt"
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
if [ ${#userLanguage} -eq 2 ]; then
break
fi
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
userLanguage=${userLanguage:0:2}
done
printlog "Using language '$userLanguage' for download."
downloadURL="https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=$userLanguage"
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
printlog "Download not found for '$userLanguage', using default ('en-US')."
downloadURL="https://download.mozilla.org/?product=firefox-latest-ssl&os=osx"
fi
printlog "Using language $userLanguage for download."
downloadURL="https://download.mozilla.org/?product=firefox-latest&amp;os=osx&amp;lang=$userLanguage"
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
printlog "Download not found for that language. Using en-US"
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US"
fi
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"/"); print a[1]}')
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
;;
firefoxesr|\
firefoxesrpkg)
@@ -2271,33 +2389,60 @@ firefoxesrpkg)
blockingProcesses=( firefox )
;;
firefoxesr_intl)
# This label will try to figure out the selected language of the user,
# This label will try to figure out the selected language of the user,
# and install corrosponding version of Firefox ESR
name="Firefox"
type="dmg"
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
printlog "Found language $userLanguage to be used for Firefox."
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt" | grep -o "=$userLanguage"; then
userLanguage=$(echo $userLanguage | cut -c 1-2)
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt" | grep "=$userLanguage"; then
userLanguage="en_US"
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
printlog "Found language $userLanguage to be used for $name."
releaseURL="https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt"
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
if [ ${#userLanguage} -eq 2 ]; then
break
fi
fi
printlog "Using language $userLanguage for download."
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
userLanguage=${userLanguage:0:2}
done
printlog "Using language '$userLanguage' for download."
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=$userLanguage"
# https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=en-US
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
printlog "Download not found for that language. Using en-US"
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US"
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
printlog "Download not found for '$userLanguage', using default ('en-US')."
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx"
fi
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*releases\/([0-9.]*)esr.*/\1/g')
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"esr/"); print a[1]}')
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
;;
firefoxpkg)
name="Firefox"
type="pkg"
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
expectedTeamID="43AQ936H96"
blockingProcesses=( firefox )
;;
firefoxpkg_intl)
# This label will try to figure out the selected language of the user,
# and install corrosponding version of Firefox ESR
name="Firefox"
type="pkg"
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
printlog "Found language $userLanguage to be used for Firefox." WARN
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep -o "=$userLanguage"; then
userLanguage=$(echo $userLanguage | cut -c 1-2)
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep "=$userLanguage"; then
userLanguage="en_US"
fi
fi
printlog "Using language $userLanguage for download." WARN
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=$userLanguage"
# https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
printlog "Download not found for that language. Using en-US" WARN
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
fi
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location | cut -d "/" -f7)
expectedTeamID="43AQ936H96"
blockingProcesses=( firefox )
;;
@@ -2316,6 +2461,23 @@ flux)
expectedTeamID="VZKSA7H9J9"
;;
flycut)
name="Flycut"
type="zip"
archiveName="Flycut.[0-9.]*.zip"
downloadURL="$(downloadURLFromGit TermiT Flycut)"
appNewVersion=$(versionFromGit TermiT Flycut )
expectedTeamID="S8JLSG5ES7"
;;
fontexplorer)
name="FontExplorer X Pro"
type="dmg"
packageID="com.linotype.FontExplorerX"
downloadURL="http://www.fontexplorerx.com/download/free-trial/Mac/"
appNewVersion=$( curl -fsL http://fex.linotype.com/update/client/mac/pro/version.plist | grep string | tail -n 1 | sed 's/[^0-9.]//g' )
expectedTeamID="2V7G2B7WG4"
;;
front)
name="Front"
type="dmg"
@@ -2368,6 +2530,7 @@ googlechrome)
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
expectedTeamID="EQHXZ8M8AV"
printlog "WARNING for ERROR: Label googlechrome should not be used. Instead use googlechromepkg as per recommendations from Google. It's not fully certain that the app actually gets updated here. googlechromepkg will have built in updates and make sure the client is updated in the future." REQ
;;
googlechromepkg)
name="Google Chrome"
@@ -2377,6 +2540,7 @@ googlechromepkg)
# https://support.google.com/chrome/a/answer/9915669
#
downloadURL="https://dl.google.com/chrome/mac/stable/accept_tos%3Dhttps%253A%252F%252Fwww.google.com%252Fintl%252Fen_ph%252Fchrome%252Fterms%252F%26_and_accept_tos%3Dhttps%253A%252F%252Fpolicies.google.com%252Fterms/googlechrome.pkg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
expectedTeamID="EQHXZ8M8AV"
updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent"
updateToolArguments=( -runMode oneshot -userInitiated YES )
@@ -2434,6 +2598,7 @@ gpgsuite)
type="pkgInDmg"
pkgName="Install.pkg"
downloadURL=$(curl -s https://gpgtools.org/ | grep https://releases.gpgtools.org/GPG_Suite- | grep Download | cut -d'"' -f4)
appNewVersion=$(echo $downloadURL | cut -d "-" -f 2 | cut -d "." -f 1-2)
expectedTeamID="PKV8ZPD836"
blockingProcesses=( "GPG Keychain" )
;;
@@ -2446,14 +2611,16 @@ gpgsync)
expectedTeamID="P24U45L8P5"
;;
grammarly)
name="Grammarly Desktop"
type="dmg"
packageID="com.grammarly.ProjectLlama"
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="W8F64X92K3"
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
appName="Grammarly Installer.app"
;;
name="Grammarly Desktop"
type="dmg"
packageID="com.grammarly.ProjectLlama"
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="W8F64X92K3"
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
# appName="Grammarly Installer.app"
installerTool="Grammarly Installer.app"
CLIInstaller="Grammarly Installer.app/Contents/MacOS/Grammarly Desktop"
;;
grandperspective)
name="GrandPerspective"
type="dmg"
@@ -2529,6 +2696,15 @@ hpeasystart)
downloadURL="https://ftp.hp.com/pub/softlib/software12/HP_Quick_Start/osx/Applications/HP_Easy_Start.app.zip"
expectedTeamID="6HB5Y2QTA3"
;;
hype)
name="Hype4"
type="dmg"
packageID="com.tumult.Hype4"
downloadURL="https://static.tumult.com/hype/download/Hype.dmg"
appNewVersion=$( curl -fsL https://tumult.com/hype/download/all/ | grep Ongoing | awk -F '<' '{print $4}' | sed 's/[^0-9.]//g' )
expectedTeamID="8J356DM772"
blockingProcesses=( NONE )
;;
hyper)
name="Hyper"
type="dmg"
@@ -2556,6 +2732,24 @@ icons)
appNewVersion=$(versionFromGit sap macOS-icon-generator )
expectedTeamID="7R5ZEU67FQ"
;;
idrive)
name="IDrive"
type="pkgInDmg"
pkgName="IDrive.pkg"
downloadURL=$(curl -fs https://static.idriveonlinebackup.com/downloads/version_mac.js | sed -E 's/.*(https.*dmg).*/\1/g')
appNewVersion=$(curl -fs https://static.idriveonlinebackup.com/downloads/version_mac.js | sed -E 's/.*mac_vernum\=\"Version\ ([0-9.]*).*/\1/g')
versionKey="CFBundleVersion"
expectedTeamID="JWDCNYZ922"
;;
idrivethin)
name="IDrive"
type="pkgInDmg"
pkgName="IDriveThin.pkg"
downloadURL=$(curl -fs https://static.idriveonlinebackup.com/downloads/idrivethin/thin_version.js | sed -E 's/.*thinclient-mac([^;]*).*/\1/g' | sed -E 's/.*(https.*dmg).*/\1/g')
appNewVersion=$(curl -fs https://static.idriveonlinebackup.com/downloads/idrivethin/thin_version.js | sed -E 's/.*thin\_mac\_ver\=\"Version\ ([0-9.]*).*/\1/g')
versionKey="CFBundleVersion"
expectedTeamID="JWDCNYZ922"
;;
iina)
name="IINA"
type="dmg"
@@ -2563,6 +2757,15 @@ iina)
appNewVersion=$(versionFromGit iina iina )
expectedTeamID="67CQ77V27R"
;;
imageoptim)
name="imageoptim"
type="tbz"
packageID="net.pornel.ImageOptim"
downloadURL="https://imageoptim.com/ImageOptim.tbz2"
appNewVersion=$( curl -fsL https://imageoptim.com/appcast.xml | grep "title" | tail -n 1 | sed 's/[^0-9.]//g' )
expectedTeamID="59KZTZA4XR"
blockingProcesses=( NONE )
;;
imazingprofileeditor)
# Credit: Bilal Habib @Pro4TLZZ
name="iMazing Profile Editor"
@@ -2897,8 +3100,24 @@ libreoffice)
expectedTeamID="7P5S3ZLCN7"
blockingProcesses=( soffice )
;;
linear)
name="Linear"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://desktop.linear.app/mac/dmg/arm64"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://desktop.linear.app/mac/dmg"
fi
appNewVersion=$(curl -sIkL $downloadURL | sed -r '/filename=/!d;s/.*filename=(.*)$/\1/' | awk '{print $2}')
expectedTeamID="7VZ2S3V9RV"
versionKey="CFBundleShortVersionString"
appName="Linear.app"
blockingProcesses=( "Linear" )
;;
logioptions|\
logitechoptions)
name="Logitech Options"
name="Logi Options"
type="pkgInZip"
#downloadURL=$(curl -fs "https://support.logi.com/api/v2/help_center/en-us/articles.json?label_names=webcontent=productdownload,webos=mac-macos-x-11.0" | tr "," "\n" | grep -A 10 "macOS" | grep -oie "https.*/.*/options/.*\.zip" | head -1)
downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/options/options_installer.zip"
@@ -2979,6 +3198,14 @@ macfuse)
appNewVersion=$(versionFromGit osxfuse osxfuse)
expectedTeamID="3T5GSNBU6W"
;;
macoslaps)
name="macOSLAPS"
type="pkg"
packageID="edu.psu.macOSLAPS"
downloadURL="$(downloadURLFromGit joshua-d-miller macOSLAPS)"
appNewVersion="$(versionFromGit joshua-d-miller macOSLAPS)"
expectedTeamID="9UYK4F9BSM"
;;
macports)
name="MacPorts"
type="pkg"
@@ -3320,6 +3547,20 @@ microsoftyammer)
#updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
#updateToolArguments=( --install --apps ?????? )
;;
mightymike)
name="Mighty Mike"
type="dmg"
downloadURL=$(downloadURLFromGit jorio MightyMike)
appNewVersion=$(versionFromGit jorio MightyMike)
expectedTeamID="RVNL7XC27G"
;;
mindmanager)
name="MindManager"
type="dmg"
downloadURL="https://www.mindmanager.com/mm-mac-dmg"
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*_Mac_*([0-9.]*)\..*/\1/g')"
expectedTeamID="ZF6ZZ779N5"
;;
miro)
# credit: @matins
name="Miro"
@@ -3607,7 +3848,12 @@ onionshare)
onlyofficedesktop)
name="ONLYOFFICE"
type="dmg"
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/distrib/onlyoffice/ONLYOFFICE.dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/arm/distrib/ONLYOFFICE.dmg"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/x86_64/distrib/ONLYOFFICE.dmg"
fi
appNewVersion=$(versionFromGit ONLYOFFICE DesktopEditors)
expectedTeamID="2WH24U26GJ"
;;
openvpnconnect)
@@ -3699,6 +3945,15 @@ perimeter81)
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //' | cut -d"." -f1-3)"
expectedTeamID="924635PD62"
;;
pika)
name="Pika"
type="dmg"
packageID="com.superhighfives.Pika"
downloadURL=$(downloadURLFromGit "superhighfives" "pika")
appNewVersion=$(versionFromGit "superhighfives" "pika")
expectedTeamID="TGHU37N6EX"
blockingProcesses=( NONE )
;;
pitch)
name="Pitch"
type="dmg"
@@ -3726,11 +3981,15 @@ plisteditpro)
expectedTeamID="8NQ43ND65V"
;;
postman)
# credit: Mischa van der Bent
name="Postman"
type="zip"
downloadURL="https://dl.pstmn.io/download/latest/osx"
appNewVersion=$(curl -Ifs https://dl.pstmn.io/download/latest/osx | grep "content-disposition:" | sed -n -e 's/^.*Postman-osx-//p' | sed 's/\.zip//' | sed $'s/[^[:print:]\t]//g' )
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://dl.pstmn.io/download/latest/osx_arm64"
appNewVersion=$(curl -fsL --head "${downloadURL}" | grep "content-disposition:" | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://dl.pstmn.io/download/latest/osx_64"
appNewVersion=$(curl -fsL --head "${downloadURL}" | grep "content-disposition:" | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')
fi
expectedTeamID="H7H8Q7M5CK"
;;
prism9)
@@ -3775,6 +4034,15 @@ promiseutilityr)
downloadURL="https://www.promise.com/DownloadFile.aspx?DownloadFileUID=6533"
expectedTeamID="268CCUR4WN"
;;
propresenter7)
name="ProPresenter 7"
appName="ProPresenter.app"
type="zip"
blockingProcesses="ProPresenter"
downloadURL=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"downloadUrl":.*?[^\]",' | head -n 1 | cut -d \" -f 4 | sed -e 's/\\//g')
appNewVersion=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"version":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
expectedTeamID="97GAAZ6CPX"
;;
protonvpn)
name="ProtonVPN"
type="dmg"
@@ -3796,6 +4064,13 @@ pymol)
downloadURL=$(curl -s -L "https://pymol.org/" | grep -m 1 -Eio 'href="https://pymol.org/installers/PyMOL-(.*)-MacOS(.*).dmg"' | cut -c7- | sed -e 's/"$//')
expectedTeamID="26SDDJ756N"
;;
qgis-pr)
name="QGIS"
type="dmg"
downloadURL="https://download.qgis.org/downloads/macos/qgis-macos-pr.dmg"
appNewVersion="$(curl -fs "https://www.qgis.org/da/_static/documentation_options.js" | grep -i version | cut -d "'" -f2)"
expectedTeamID="4F7N4UDA22"
;;
r)
name="R"
type="pkg"
@@ -3811,10 +4086,15 @@ ramboxce)
expectedTeamID="7F292FPD69"
;;
rancherdesktop)
name="Rancher.Desktop-1.0.0-mac"
name="Rancher Desktop"
type="zip"
archiveName="Rancher.Desktop-[0-9.]*-mac.zip"
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
if [[ $(arch) == "arm64" ]]; then
archiveName="Rancher.Desktop-[0-9.]*-mac.aarch64.zip"
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
elif [[ $(arch) == "i386" ]]; then
archiveName="Rancher.Desktop-[0-9.]*-mac.x86_64.zip"
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
fi
appNewVersion="$(versionFromGit rancher-sandbox rancher-desktop)"
expectedTeamID="2Q6FHJR3H3"
appName="Rancher Desktop.app"
@@ -3837,14 +4117,15 @@ redeye)
remotedesktopmanagerenterprise)
name="Remote Desktop Manager"
type="dmg"
downloadURL=$(curl -fs https://remotedesktopmanager.com/home/thankyou/rdmmacbin | grep -oe "http.*\.dmg" | head -1)
downloadURL=$(curl -fs https://devolutions.net/remote-desktop-manager/home/thankyou/rdmmacbin | grep -oe "http.*\.dmg" | head -1)
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
expectedTeamID="N592S9ASDB"
blockingProcesses=( "$name" )
;;
remotedesktopmanagerfree)
name="Remote Desktop Manager Free"
type="dmg"
downloadURL=$(curl -fs https://remotedesktopmanager.com/home/thankyou/rdmmacfreebin | grep -oe "http.*\.dmg" | head -1)
downloadURL=$(curl -fs https://devolutions.net/remote-desktop-manager/home/thankyou/rdmmacfreebin | grep -oe "http.*\.dmg" | head -1)
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
expectedTeamID="N592S9ASDB"
;;
@@ -3885,11 +4166,15 @@ ricohpsprinters)
;;
ringcentralapp)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Glip"
type="dmg"
downloadURL="https://downloads.ringcentral.com/glip/rc/GlipForMac"
name="Ringcentral"
type="pkg"
if [[ $(arch) != "i386" ]]; then
downloadURL="https://app.ringcentral.com/download/RingCentral-arm64.pkg"
else
downloadURL="https://app.ringcentral.com/download/RingCentral.pkg"
fi
expectedTeamID="M932RC5J66"
blockingProcesses=( "Glip" )
blockingProcesses=( "Ringcentral" )
;;
ringcentralclassicapp)
name="Glip"
@@ -4019,6 +4304,13 @@ shield)
appNewVersion=$(versionFromGit theevilbit Shield)
expectedTeamID="33YRLYRBYV"
;;
shottr)
name="Shottr"
type="dmg"
downloadURL="https://shottr.cc/dl/Shottr-1.5.3.dmg"
appNewVersion=$( echo ${downloadURL} | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
expectedTeamID="2Y683PRQWN"
;;
sidekick)
name="Sidekick"
type="dmg"
@@ -4060,7 +4352,7 @@ sizeup)
sketch)
name="Sketch"
type="zip"
downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | sed -E 's/.*href=\"(.*)\".?/\1/g')
downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | tr '"' "\n" | grep -E "https.*.zip")
appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page
expectedTeamID="WUGMZZ5K46"
;;
@@ -4078,6 +4370,18 @@ skype)
expectedTeamID="AL798K98FX"
Company="Microsoft"
;;
slab)
name="Slab"
type="dmg"
if [[ $(arch) == i386 ]]; then
archiveName="Slab-[0-9.]*-darwin-x64.dmg"
elif [[ $(arch) == arm64 ]]; then
archiveName="Slab-[0-9.]*-darwin-arm64.dmg"
fi
downloadURL=$(downloadURLFromGit slab desktop-releases)
appNewVersion=$(versionFromGit slab desktop-releases)
expectedTeamID="Q67SW996Z5"
;;
slack)
name="Slack"
type="dmg"
@@ -4097,11 +4401,32 @@ smartgit)
expectedTeamID="PHMY45PTNW"
;;
snagit|\
snagit2021|\
snagit2020)
snagit2022)
name="Snagit 2022"
type="dmg"
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2022" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2022" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;
snagit2019)
name="Snagit 2019"
type="dmg"
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2019" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2019" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;
snagit2020)
name="Snagit 2020"
type="dmg"
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2020" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2020" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;
snagit2021)
name="Snagit 2021"
type="dmg"
downloadURL="https://download.techsmith.com/snagitmac/releases/Snagit.dmg"
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2021" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2021" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;
snapgeneviewer)
@@ -4111,6 +4436,15 @@ snapgeneviewer)
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | tr '/' '\n' | grep -i "dmg" | sed -E 's/[a-zA-Z_]*_([0-9.]*)_mac\.dmg/\1/g' )
expectedTeamID="WVCV9Q8Y78"
;;
sonobus)
name="Sonobus"
type="pkgInDmg"
html_page_source="$(curl -fs 'https://www.sonobus.net')"
downloadFile="$(echo "${html_page_source}" | xmllint --html --xpath "string(//a[contains(@href, 'mac.dmg')]/@href)" - 2> /dev/null)"
downloadURL="https://www.sonobus.net/$downloadFile"
appNewVersion="$(echo "${downloadFile}" | sed 's/releases\/sonobus-//' | sed 's/\-mac.dmg//' )"
expectedTeamID="XCS435894D"
;;
sonos|\
sonoss1)
# credit: Erik Stam (@erikstam)
@@ -4262,8 +4596,15 @@ tageditor)
talkdeskcallbar)
name="Callbar"
type="dmg"
downloadURL=https://downloadcallbar.talkdesk.com/Callbar-$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p').dmg
appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p')
appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*$/\1/p')
downloadURL=https://downloadcallbar.talkdesk.com/Callbar-${appNewVersion}.dmg
expectedTeamID="YGGJX44TB8"
;;
talkdeskcxcloud)
name="Talkdesk"
type="dmg"
appNewVersion=$(curl -fs https://td-infra-prd-us-east-1-s3-atlaselectron.s3.amazonaws.com/talkdesk-latest-metadata.json | sed -n -e 's/^.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*$/\1/p' | head -n 1)
downloadURL="https://td-infra-prd-us-east-1-s3-atlaselectron.s3.amazonaws.com/talkdesk-${appNewVersion}.dmg"
expectedTeamID="YGGJX44TB8"
;;
taskpaper)
@@ -4357,6 +4698,31 @@ thunderbird)
expectedTeamID="43AQ936H96"
blockingProcesses=( thunderbird )
;;
thunderbird_intl)
# This label will try to figure out the selected language of the user,
# and install corrosponding version of Thunderbird
name="Thunderbird"
type="dmg"
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
printlog "Found language $userLanguage to be used for $name."
releaseURL="https://ftp.mozilla.org/pub/thunderbird/releases/latest/README.txt"
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
if [ ${#userLanguage} -eq 2 ]; then
break
fi
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
userLanguage=${userLanguage:0:2}
done
printlog "Using language '$userLanguage' for download."
downloadURL="https://download.mozilla.org/?product=thunderbird-latest&os=osx&lang=$userLanguage"
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
printlog "Download not found for '$userLanguage', using default ('en-US')."
downloadURL="https://download.mozilla.org/?product=thunderbird-latest&os=osx"
fi
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"/"); print a[1]}')
expectedTeamID="43AQ936H96"
blockingProcesses=( thunderbird )
;;
tidal)
name="TIDAL"
type="dmg"
@@ -4415,6 +4781,14 @@ typora)
appNewVersion=$(curl -fs "https://www.typora.io/download/dev_update.xml" | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | cut -d '"' -f2)
expectedTeamID="9HWK5273G4"
;;
ultimakercura)
name="Ultimaker Cura"
type="dmg"
downloadURL="$(downloadURLFromGit Ultimaker Cura)"
archiveName="Ultimaker_Cura-[0-9].*-Darwin.dmg"
appNewVersion=$(versionFromGit Ultimaker Cura )
expectedTeamID="V4B3JXRRQS"
;;
umbrellaroamingclient)
# credit: Tadayuki Onishi (@kenchan0130)
name="Umbrella Roaming Client"
@@ -4436,6 +4810,14 @@ universaltypeclient)
downloadURL=https://bin.extensis.com/$( curl -fs https://www.extensis.com/support/universal-type-server-7/ | grep -o "UTC-[0-9].*M.zip" )
expectedTeamID="J6MMHGD9D6"
;;
unnaturalscrollwheels)
name="UnnaturalScrollWheels"
type="dmg"
downloadURL="$(downloadURLFromGit ther0n UnnaturalScrollWheels)"
appNewVersion="$(versionFromGit ther0n UnnaturalScrollWheels)"
expectedTeamID="D6H5W2T379"
blockingProcesses=( UnnaturalScrollWheels )
;;
utm)
name="UTM"
type="dmg"
@@ -4563,6 +4945,12 @@ webexmeetings)
#blockingProcessesMaxCPU="5"
blockingProcesses=( Webex )
;;
wechat)
name="WeChat"
type="dmg"
downloadURL="https://dldir1.qq.com/weixin/mac/WeChatMac.dmg"
expectedTeamID="5A4RE8SF68"
;;
whatsapp)
name="WhatsApp"
type="dmg"
@@ -4618,6 +5006,15 @@ xeroxphaser7800)
downloadURL=$(curl -fs "https://www.support.xerox.com/en-us/product/phaser-7800/downloads?platform=macOSx11" | xmllint --html --format - 2>/dev/null | grep -o "https://.*XeroxDrivers.*.dmg")
expectedTeamID="G59Y3XFNFR"
;;
xeroxworkcentre7800)
name="XeroxWorkCentre"
type="pkgInDmg"
appCustomVersion(){ lpinfo -m | grep 783 | tail -n 1 | awk -F ', ' '{print $2}' }
appNewVersion=$( curl -fsL "https://www.support.xerox.com/nl-nl/product/workcentre-7800-series/downloads?platform=macOSx11" | grep .dmg | head -n 1 | awk -F '_' '{print $2}' )
downloadURL=$( curl -fsL "https://www.support.xerox.com/nl-nl/product/workcentre-7800-series/downloads?platform=macOSx11" | xmllint --html --format - 2>/dev/null | grep -o "https://.*XeroxDrivers.*.dmg" )
expectedTeamID="G59Y3XFNFR"
blockingProcesses=( NONE )
;;
xink)
name="Xink"
type="pkg"
@@ -4682,6 +5079,14 @@ zohoworkdrive)
downloadURL=$(echo "$lines" | grep -i "files-accl.zohopublic.com")$(echo "$lines" | grep -i -A17 "files-accl.zohopublic.com" | grep -i -A2 macintosh | tail -1)
expectedTeamID="TZ824L8Y37"
;;
zohoworkdrivegenie)
name="Zoho WorkDrive Genie"
type="dmg"
# https://www.zoho.com/workdrive/genie.html
downloadURL="https://www.zoho.com/workdrive/downloads/edit-tool/Zoho_WorkDrive_Genie.dmg"
CLIInstaller="Zoho WorkDrive Genie.app/Contents/MacOS/Zoho WorkDrive Genie"
expectedTeamID="TZ824L8Y37"
;;
zohoworkdrivetruesync)
# Using this label expects you to agree to these:
# License Areemant: https://www.zoho.com/workdrive/zohoworkdrive-license-agreement.html

View File

@@ -21,6 +21,7 @@ amazonchime
amazoncorretto8jdk
amazonworkspaces
androidfiletransfer
androidstudio
anydesk
apparency
appcleaner
@@ -34,6 +35,7 @@ aquaskk
arq7
asana
atext
atextlegacy
atom
audacity
authydesktop
@@ -65,6 +67,8 @@ calcservice
calibre
camostudio
camtasia
camtasia2019
camtasia2021
canva
chatwork
cisdem-documentreader
@@ -74,11 +78,14 @@ clickshare
clipy
closeio
cloudya
clue
cluefull
code42
coderunner
colourcontrastanalyser
cormorant
craftmanager
craftmanagerforsketch
cryptomator
cyberduck
daisydisk
@@ -95,13 +102,17 @@ dialog
dialpad
discord
diskspace
displaylinkmanager
docker
dockutil
drawio
drift
dropbox
duckduckgo
easeusdatarecoverywizard
easyfind
egnyte
egnytewebedit
element
eraseinstall
eshareosx
@@ -114,6 +125,7 @@ fastscripts
favro
ferdi
figma
filezilla
findanyfile
firefox
firefox_da
@@ -122,8 +134,11 @@ firefoxesr
firefoxesr_intl
firefoxesrpkg
firefoxpkg
firefoxpkg_intl
flowjo
flux
flycut
fontexplorer
front
fsmonitor
gimp
@@ -151,10 +166,14 @@ hazel
houdahspot
hpeasyadmin
hpeasystart
hype
hyper
ibarcoder
icons
idrive
idrivethin
iina
imageoptim
imazingprofileeditor
inkscape
insomnia
@@ -193,6 +212,8 @@ lastpass
launchbar
lexarrecoverytool
libreoffice
linear
logioptions
logitechoptions
logseq
loom
@@ -202,6 +223,7 @@ lulu
macadminspython
maccyapp
macfuse
macoslaps
macports
malwarebytes
marathon
@@ -233,6 +255,8 @@ microsoftteams
microsoftvisualstudiocode
microsoftword
microsoftyammer
mightymike
mindmanager
miro
mobikinassistantforandroid
mochakeyboard
@@ -277,6 +301,7 @@ paretosecurity
parsec
pdfsam
perimeter81
pika
pitch
plantronicshub
platypus
@@ -288,10 +313,12 @@ privileges
proctortrack
promiseutility
promiseutilityr
propresenter7
protonvpn
proxyman
pycharmce
pymol
qgis-pr
r
ramboxce
rancherdesktop
@@ -332,12 +359,16 @@ sizeup
sketch
sketchupviewer
skype
slab
slack
smartgit
snagit
snagit2019
snagit2020
snagit2021
snagit2022
snapgeneviewer
sonobus
sonos
sonoss1
sonoss2
@@ -360,6 +391,7 @@ tableaupublic
tableaureader
tageditor
talkdeskcallbar
talkdeskcxcloud
taskpaper
teamviewer
teamviewerhost
@@ -372,6 +404,7 @@ textmate
theunarchiver
things
thunderbird
thunderbird_intl
tidal
toggltrack
tom4aconverter
@@ -380,9 +413,11 @@ trex
tunnelbear
tunnelblick
typora
ultimakercura
umbrellaroamingclient
uniconverter
universaltypeclient
unnaturalscrollwheels
utm
vagrant
vanilla
@@ -400,6 +435,7 @@ wallyezflash
webex
webexmeetings
webexteams
wechat
whatsapp
wickrme
wickrpro
@@ -407,6 +443,7 @@ wireshark
wordservice
wwdc
xeroxphaser7800
xeroxworkcentre7800
xink
xmenu
xquartz
@@ -415,6 +452,7 @@ yubikeymanagerqt
zappy
zeplin
zohoworkdrive
zohoworkdrivegenie
zohoworkdrivetruesync
zoom
zoomclient

View File

@@ -12,4 +12,4 @@
expectedTeamID="2BUA8C4S2C"
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
#forcefulQuit=YES
;;
;;

View File

@@ -9,4 +9,4 @@ type="pkg"
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
fi
expectedTeamID="94KV3E626L"
;;
;;

View File

@@ -10,4 +10,4 @@ androidstudio)
fi
expectedTeamID="EQHXZ8M8AV"
blockingProcesses=( androidstudio )
;;
;;

View File

@@ -5,4 +5,3 @@ camtasia2020)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2020" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;

View File

@@ -9,4 +9,4 @@ postman)
appNewVersion=$(curl -fsL --head "${downloadURL}" | grep "content-disposition:" | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')
fi
expectedTeamID="H7H8Q7M5CK"
;;
;;

View File

@@ -6,4 +6,4 @@ propresenter7)
downloadURL=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"downloadUrl":.*?[^\]",' | head -n 1 | cut -d \" -f 4 | sed -e 's/\\//g')
appNewVersion=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"version":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
expectedTeamID="97GAAZ6CPX"
;;
;;

View File

@@ -5,4 +5,3 @@ snagit2019)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2019" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;

View File

@@ -5,4 +5,3 @@ snagit2020)
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2020" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
expectedTeamID="7TQL462TU8"
;;

View File

@@ -1,9 +1,9 @@
sonobus)
name="Sonobus"
type="pkgInDmg"
html_page_source="$(curl -fs 'https://www.sonobus.net')"
downloadFile="$(echo "${html_page_source}" | xmllint --html --xpath "string(//a[contains(@href, 'mac.dmg')]/@href)" - 2> /dev/null)"
downloadURL="https://www.sonobus.net/$downloadFile"
appNewVersion="$(echo "${downloadFile}" | sed 's/releases\/sonobus-//' | sed 's/\-mac.dmg//' )"
expectedTeamID="XCS435894D"
;;
name="Sonobus"
type="pkgInDmg"
html_page_source="$(curl -fs 'https://www.sonobus.net')"
downloadFile="$(echo "${html_page_source}" | xmllint --html --xpath "string(//a[contains(@href, 'mac.dmg')]/@href)" - 2> /dev/null)"
downloadURL="https://www.sonobus.net/$downloadFile"
appNewVersion="$(echo "${downloadFile}" | sed 's/releases\/sonobus-//' | sed 's/\-mac.dmg//' )"
expectedTeamID="XCS435894D"
;;

View File

@@ -5,4 +5,4 @@ unnaturalscrollwheels)
appNewVersion="$(versionFromGit ther0n UnnaturalScrollWheels)"
expectedTeamID="D6H5W2T379"
blockingProcesses=( UnnaturalScrollWheels )
;;
;;

View File

@@ -1 +1 @@
9.2beta
9.2