preparing v9.1 release

This commit is contained in:
Armin Briegel
2022-03-18 13:51:25 +01:00
parent f001a829bd
commit ac042bc700
4 changed files with 224 additions and 38 deletions

View File

@@ -1,6 +1,36 @@
## v9.1 ## v9.1
- new labels: amazoncorretto8jdk (#423) **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)
- the `googlechrome` label now always downloads the universal version (#430)
- new labels:
- 1passwordcli (#429)
- amazoncorretto8jdk (#423)
- autodeskfusion360admininstall (#447)
- axurerp10 (#439)
- calcservice (#426)
- clipy (#412)
- dockutil (#432)
- easyfind (#426)
- grammarly (#444)
- houdahspot (#426)
- macadminspython (#431)
- microsoftazuredatastudio (#438)
- nanosaur (#426)
- tembo (#426)
- wordservice (#426)
- xmenu (#426)
- updated labels:
- appcleaner (#428)
- dialog (#435, #437)
- googlechrome (#430)
- microsoftdefender (#440)
- supportapp (#426)
- zoom and zoomgov (#426, #433)
## v9.0.1 ## v9.0.1

View File

@@ -301,8 +301,8 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then
rosetta2=no rosetta2=no
fi fi
fi fi
VERSION="9.0.1" VERSION="9.1"
VERSIONDATE="2022-02-20" VERSIONDATE="2022-03-18"
# MARK: Functions # MARK: Functions
@@ -462,10 +462,10 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name
fi fi
if [ -n "$archiveName" ]; then if [ -n "$archiveName" ]; then
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \ downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
| awk -F '"' "/browser_download_url/ && /$archiveName\"/ { print \$4; exit }") | awk -F '"' "/browser_download_url/ && /$archiveName\"/ { print \$4; exit }")
else else
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \ downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
| awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
fi fi
if [ -z "$downloadURL" ]; then if [ -z "$downloadURL" ]; then
@@ -482,7 +482,7 @@ versionFromGit() {
gitusername=${1?:"no git user name"} gitusername=${1?:"no git user name"}
gitreponame=${2?:"no git repo name"} gitreponame=${2?:"no git repo name"}
appNewVersion=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | grep tag_name | cut -d '"' -f 4 | sed 's/[^0-9\.]//g') appNewVersion=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | grep tag_name | cut -d '"' -f 4 | sed 's/[^0-9\.]//g')
if [ -z "$appNewVersion" ]; then if [ -z "$appNewVersion" ]; then
printlog "could not retrieve version number for $gitusername/$gitreponame" WARN printlog "could not retrieve version number for $gitusername/$gitreponame" WARN
appNewVersion="" appNewVersion=""
@@ -750,7 +750,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
printlog "notifying" printlog "notifying"
displaynotification "$message" "No update for $name!" displaynotification "$message" "No update for $name!"
fi fi
cleanupAndExit 0 "No new version to install" WARN cleanupAndExit 0 "No new version to install" REG
else else
printlog "Using force to install anyway." printlog "Using force to install anyway."
fi fi
@@ -792,7 +792,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
# remove existing application # remove existing application
if [ -e "$targetDir/$appName" ]; then if [ -e "$targetDir/$appName" ]; then
printlog "Removing existing $targetDir/$appName" DEBUG printlog "Removing existing $targetDir/$appName" WARN
deleteAppOut=$(rm -Rfv "$targetDir/$appName" 2>&1) deleteAppOut=$(rm -Rfv "$targetDir/$appName" 2>&1)
tempName="$targetDir/$appName" tempName="$targetDir/$appName"
tempNameLength=$((${#tempName} + 10)) tempNameLength=$((${#tempName} + 10))
@@ -803,16 +803,21 @@ installAppWithPath() { # $1: path to app to install in $targetDir
# copy app to /Applications # copy app to /Applications
printlog "Copy $appPath to $targetDir" printlog "Copy $appPath to $targetDir"
if ! ditto "$appPath" "$targetDir/$appName"; then copyAppOut=$(ditto -v "$appPath" "$targetDir/$appName" 2>&1)
cleanupAndExit 7 "Error while copying" ERROR copyAppStatus=$(echo $?)
deduplicatelogs "$copyAppOut"
printlog "Debugging enabled, App copy output was:\n$logoutput" DEBUG
if [[ $copyAppStatus -ne 0 ]] ; then
#if ! ditto "$appPath" "$targetDir/$appName"; then
cleanupAndExit 7 "Error while copying:\n$logoutput" ERROR
fi fi
# set ownership to current user # set ownership to current user
if [[ "$currentUser" != "loginwindow" && $SYSTEMOWNER -ne 1 ]]; then if [[ "$currentUser" != "loginwindow" && $SYSTEMOWNER -ne 1 ]]; then
printlog "Changing owner to $currentUser" printlog "Changing owner to $currentUser" WARN
chown -R "$currentUser" "$targetDir/$appName" chown -R "$currentUser" "$targetDir/$appName"
else else
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel" printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel" WARN
chown -R root:wheel "$targetDir/$appName" chown -R root:wheel "$targetDir/$appName"
fi fi
@@ -910,7 +915,7 @@ installFromPKG() {
printlog "notifying" printlog "notifying"
displaynotification "$message" "No update for $name!" displaynotification "$message" "No update for $name!"
fi fi
cleanupAndExit 0 "No new version to install" WARN cleanupAndExit 0 "No new version to install" REQ
else else
printlog "Using force to install anyway." printlog "Using force to install anyway."
fi fi
@@ -1120,7 +1125,7 @@ finishing() {
message="Installed $name, version $appversion" message="Installed $name, version $appversion"
fi fi
printlog "$message" printlog "$message" REQ
if [[ $currentUser != "loginwindow" && ( $NOTIFY == "success" || $NOTIFY == "all" ) ]]; then if [[ $currentUser != "loginwindow" && ( $NOTIFY == "success" || $NOTIFY == "all" ) ]]; then
printlog "notifying" printlog "notifying"
@@ -1164,7 +1169,7 @@ autoload is-at-least
installedOSversion=$(sw_vers -productVersion) installedOSversion=$(sw_vers -productVersion)
if ! is-at-least 10.14 $installedOSversion; then if ! is-at-least 10.14 $installedOSversion; then
printlog "Installomator requires at least macOS 10.14 Mojave." printlog "Installomator requires at least macOS 10.14 Mojave." ERROR
exit 98 exit 98
fi fi
@@ -1185,7 +1190,7 @@ fi
while [[ -n $1 ]]; do while [[ -n $1 ]]; do
if [[ $1 =~ ".*\=.*" ]]; then if [[ $1 =~ ".*\=.*" ]]; then
# if an argument contains an = character, send it to eval # if an argument contains an = character, send it to eval
printlog "setting variable from argument $1" REQ printlog "setting variable from argument $1" WARN
eval $1 eval $1
else else
# assume it's a label # assume it's a label
@@ -1296,6 +1301,15 @@ valuesfromarguments)
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" ) blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
#forcefulQuit=YES #forcefulQuit=YES
;; ;;
1passwordcli)
name="1Password CLI"
type="pkg"
#packageID="com.1password.op"
downloadURL=$(curl -fs https://app-updates.agilebits.com/product_history/CLI | grep -m 1 -i op_apple_universal | cut -d'"' -f 2)
appNewVersion=$(echo $downloadURL | sed -E 's/.*\/[a-zA-Z_]*([0-9.]*)\..*/\1/g')
appCustomVersion(){ /usr/local/bin/op -v }
expectedTeamID="2BUA8C4S2C"
;;
4kvideodownloader) 4kvideodownloader)
name="4K Video Downloader" name="4K Video Downloader"
type="dmg" type="dmg"
@@ -1434,6 +1448,13 @@ amazonchime)
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z.\-]*-([0-9.]*)\..*/\1/g' ) appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z.\-]*-([0-9.]*)\..*/\1/g' )
expectedTeamID="94KV3E626L" expectedTeamID="94KV3E626L"
;; ;;
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}')
expectedTeamID="94KV3E626L"
;;
amazonworkspaces) amazonworkspaces)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting) # credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Workspaces" name="Workspaces"
@@ -1463,10 +1484,10 @@ apparency)
expectedTeamID="936EB786NH" expectedTeamID="936EB786NH"
;; ;;
appcleaner) appcleaner)
# credit: Tadayuki Onishi (@kenchan0130)
name="AppCleaner" name="AppCleaner"
type="zip" type="zip"
downloadURL=$(curl -fs https://freemacsoft.net/appcleaner/Updates.xml | xpath '//rss/channel/*/enclosure/@url' 2>/dev/null | tr " " "\n" | sort | tail -1 | cut -d '"' -f 2) downloadURL=$(curl -fs https://freemacsoft.net/appcleaner/Updates.xml | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | tr " " "\n" | sort | tail -1 | cut -d '"' -f 2)
appNewVersion=$(curl -fsL "https://freemacsoft.net/appcleaner/Updates.xml" | xpath '//rss/channel/item[last()]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="X85ZX835W9" expectedTeamID="X85ZX835W9"
;; ;;
applenyfonts) applenyfonts)
@@ -1564,6 +1585,16 @@ authydesktop)
appNewVersion="$(curl -sfL --output /dev/null -r 0-0 "${downloadURL}" --remote-header-name --remote-name -w "%{url_effective}\n" | grep -o -E '([a-zA-Z0-9\_.%-]*)\.(dmg|pkg|zip|tbz)$' | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')" appNewVersion="$(curl -sfL --output /dev/null -r 0-0 "${downloadURL}" --remote-header-name --remote-name -w "%{url_effective}\n" | grep -o -E '([a-zA-Z0-9\_.%-]*)\.(dmg|pkg|zip|tbz)$' | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')"
expectedTeamID="9EVH78F4V4" expectedTeamID="9EVH78F4V4"
;; ;;
autodeskfusion360admininstall)
name="Autodesk Fusion 360 Admin Install"
type="pkg"
packageID="com.autodesk.edu.fusion360"
downloadURL="https://dl.appstreaming.autodesk.com/production/installers/Autodesk%20Fusion%20360%20Admin%20Install.pkg"
appNewVersion=$(curl -fs "https://dl.appstreaming.autodesk.com/production/97e6dd95735340d6ad6e222a520454db/73e72ada57b7480280f7a6f4a289729f/full.json" | sed -E 's/.*build-version":"([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*/\1/g')
expectedTeamID="XXKJ396S2Y"
appName="Autodesk Fusion 360.app"
blockingProcesses=( "Autodesk Fusion 360" "Fusion 360" )
;;
autodmg) autodmg)
# credit: Mischa van der Bent (@mischavdbent) # credit: Mischa van der Bent (@mischavdbent)
name="AutoDMG" name="AutoDMG"
@@ -1602,6 +1633,20 @@ awsvpnclient)
expectedTeamID="94KV3E626L" expectedTeamID="94KV3E626L"
appNewVersion=$(curl -is "https://beta2.communitypatch.com/jamf/v1/ba1efae22ae74a9eb4e915c31fef5dd2/patch/AWSVPNClient" | grep currentVersion | tr ',' '\n' | grep currentVersion | cut -d '"' -f 4) appNewVersion=$(curl -is "https://beta2.communitypatch.com/jamf/v1/ba1efae22ae74a9eb4e915c31fef5dd2/patch/AWSVPNClient" | grep currentVersion | tr ',' '\n' | grep currentVersion | cut -d '"' -f 4)
;; ;;
axurerp10)
name="Axure RP 10"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://d3uii9pxdigrx1.cloudfront.net/AxureRP-Setup-arm64.dmg"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://d3uii9pxdigrx1.cloudfront.net/AxureRP-Setup.dmg"
fi
appNewVersion=$( curl -sL https://www.axure.com/release-history | grep -Eo '[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}' -m 1 )
expectedTeamID="HUMW6UU796"
versionKey="CFBundleVersion"
appName="Axure RP 10.app"
blockingProcesses=( "Axure RP 10" )
;;
balenaetcher) balenaetcher)
name="balenaEtcher" name="balenaEtcher"
type="dmg" type="dmg"
@@ -1729,6 +1774,13 @@ cakebrew)
appNewVersion=$( curl -fsL "https://www.cakebrew.com/appcast/profileInfo.php" | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2 ) appNewVersion=$( curl -fsL "https://www.cakebrew.com/appcast/profileInfo.php" | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2 )
expectedTeamID="R85D3K8ATT" expectedTeamID="R85D3K8ATT"
;; ;;
calcservice)
name="CalcService"
type="zip"
downloadURL="$(curl -fs -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" "https://www.devontechnologies.com/support/download" | tr '"' "\n" | grep -o "http.*download.*.zip" | grep -i calcservice | head -1)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;
calibre) calibre)
# credit: Drew Diver (@grumpydrew on MacAdmins Slack) # credit: Drew Diver (@grumpydrew on MacAdmins Slack)
name="calibre" name="calibre"
@@ -1803,6 +1855,13 @@ clickshare)
downloadURL=https://www.barco.com$(curl -fs "https://www.barco.com/en/clickshare/app" | grep -E -o '(\/\S*Download\?FileNumber=R3306192\S*ShowDownloadPage=False)' | tail -1) downloadURL=https://www.barco.com$(curl -fs "https://www.barco.com/en/clickshare/app" | grep -E -o '(\/\S*Download\?FileNumber=R3306192\S*ShowDownloadPage=False)' | tail -1)
expectedTeamID="P6CDJZR997" expectedTeamID="P6CDJZR997"
;; ;;
clipy)
name="Clipy"
type="dmg"
downloadURL=$(downloadURLFromGit Clipy Clipy)
appNewVersion=$(versionFromGit Clipy Clipy)
expectedTeamID="BBCHAJ584H"
;;
closeio) closeio)
name="Close.io" name="Close.io"
type="dmg" type="dmg"
@@ -1949,12 +2008,13 @@ devonthink)
appNewVersion=$( echo ${downloadURL} | tr '/' '\n' | grep "[0-9]" | grep "[.]" | head -1 ) appNewVersion=$( echo ${downloadURL} | tr '/' '\n' | grep "[0-9]" | grep "[.]" | head -1 )
expectedTeamID="679S2QUWR8" expectedTeamID="679S2QUWR8"
;; ;;
dialog) dialog|\
swiftdialog)
name="Dialog" name="Dialog"
type="pkg" type="pkg"
packageID="au.csiro.dialogcli" packageID="au.csiro.dialogcli"
downloadURL="$(downloadURLFromGit bartreardon Dialog)" downloadURL="$(downloadURLFromGit bartreardon swiftDialog)"
appNewVersion="$(versionFromGit bartreardon Dialog)" appNewVersion="$(versionFromGit bartreardon swiftDialog)"
expectedTeamID="PWA5E9TQ59" expectedTeamID="PWA5E9TQ59"
;; ;;
dialpad) dialpad)
@@ -1990,6 +2050,15 @@ docker)
fi fi
expectedTeamID="9BNSXJN65R" expectedTeamID="9BNSXJN65R"
;; ;;
dockutil)
name="dockutil"
type="pkg"
packageID="dockutil.cli.tool"
downloadURL=$(downloadURLFromGit "kcrawford" "dockutil")
appNewVersion=$(versionFromGit "kcrawford" "dockutil")
expectedTeamID="Z5J8CJBUWC"
blockingProcesses=( NONE )
;;
drift) drift)
# credit Elena Ackley (@elenaelago) # credit Elena Ackley (@elenaelago)
name="Drift" name="Drift"
@@ -2011,6 +2080,13 @@ easeusdatarecoverywizard)
#appNewVersion="" #appNewVersion=""
expectedTeamID="DLLVW95FSM" expectedTeamID="DLLVW95FSM"
;; ;;
easyfind)
name="EasyFind"
type="zip"
downloadURL="$(curl -fs "https://www.devontechnologies.com/apps/freeware" | grep -o "http.*download.*.zip" | grep -i easyfind)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;
egnyte) egnyte)
# credit: #MoeMunyoki from MacAdmins Slack # credit: #MoeMunyoki from MacAdmins Slack
name="Egnyte Connect" name="Egnyte Connect"
@@ -2266,15 +2342,8 @@ golang)
googlechrome) googlechrome)
name="Google Chrome" name="Google Chrome"
type="dmg" type="dmg"
if [[ $(arch) != "i386" ]]; then downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
printlog "Architecture: arm64 (not i386)" appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
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}')
else
printlog "Architecture: i386"
downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac,stable/{print $3; exit}')
fi
expectedTeamID="EQHXZ8M8AV" expectedTeamID="EQHXZ8M8AV"
;; ;;
googlechromepkg) googlechromepkg)
@@ -2353,6 +2422,15 @@ gpgsync)
appNewVersion="$(versionFromGit firstlookmedia gpgsync)" appNewVersion="$(versionFromGit firstlookmedia gpgsync)"
expectedTeamID="P24U45L8P5" 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"
;;
grandperspective) grandperspective)
name="GrandPerspective" name="GrandPerspective"
type="dmg" type="dmg"
@@ -2407,6 +2485,13 @@ hazel)
appNewVersion=$(curl -fsI https://www.noodlesoft.com/Products/Hazel/download | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') appNewVersion=$(curl -fsI https://www.noodlesoft.com/Products/Hazel/download | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g')
expectedTeamID="86Z3GCJ4MF" expectedTeamID="86Z3GCJ4MF"
;; ;;
houdahspot)
name="HoudahSpot"
type="zip"
downloadURL="$(curl -fs https://www.houdah.com/houdahSpot/updates/cast6.php | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
appNewVersion="$(curl -fs https://www.houdah.com/houdahSpot/updates/cast6.php | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
expectedTeamID="DKGQD8H8ZY"
;;
hpeasyadmin) hpeasyadmin)
# credit: Søren Theilgaard (@theilgaard) # credit: Søren Theilgaard (@theilgaard)
name="HP Easy Admin" name="HP Easy Admin"
@@ -2848,6 +2933,15 @@ lulu)
appNewVersion=$(versionFromGit objective-see LuLu) appNewVersion=$(versionFromGit objective-see LuLu)
expectedTeamID="VBG97UB4TA" expectedTeamID="VBG97UB4TA"
;; ;;
macadminspython)
name="MacAdmins Python"
type="pkg"
packageID="org.macadmins.python.recommended"
downloadURL=$(curl --silent --fail "https://api.github.com/repos/macadmins/python/releases/latest" | awk -F '"' "/browser_download_url/ && /python_recommended_signed/ { print \$4; exit }")
appNewVersion=$(grep -o -E '\d+\.\d+\.\d+\.\d+' <<< $downloadURL | head -n 1)
expectedTeamID="9GQZ7KUFR6"
blockingProcesses=( NONE )
;;
maccyapp) maccyapp)
name="Maccy" name="Maccy"
type="zip" type="zip"
@@ -2944,6 +3038,16 @@ microsoftautoupdate)
#updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" #updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
#updateToolArguments=( --install --apps MSau04 ) #updateToolArguments=( --install --apps MSau04 )
;; ;;
microsoftazuredatastudio|\
azuredatastudio)
name="Azure Data Studio"
type="zip"
downloadURL=$( curl -sL https://github.com/microsoft/azuredatastudio/releases/latest | grep 'macOS ZIP' | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" )
appNewVersion=$(versionFromGit microsoft azuredatastudio )
expectedTeamID="UBF8T346G9"
appName="Azure Data Studio.app"
blockingProcesses=( "Azure Data Studio" )
;;
microsoftazurestorageexplorer) microsoftazurestorageexplorer)
name="Microsoft Azure Storage Explorer" name="Microsoft Azure Storage Explorer"
type="zip" type="zip"
@@ -2966,8 +3070,9 @@ microsoftcompanyportal)
updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
updateToolArguments=( --install --apps IMCP01 ) updateToolArguments=( --install --apps IMCP01 )
;; ;;
microsoftdefender|\
microsoftdefenderatp) microsoftdefenderatp)
name="Microsoft Defender ATP" name="Microsoft Defender"
type="pkg" type="pkg"
downloadURL="https://go.microsoft.com/fwlink/?linkid=2097502" downloadURL="https://go.microsoft.com/fwlink/?linkid=2097502"
appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.defender.standalone"]/version' 2>/dev/null | sed -E 's/<version>([0-9.]*) .*/\1/') appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.defender.standalone"]/version' 2>/dev/null | sed -E 's/<version>([0-9.]*) .*/\1/')
@@ -3317,6 +3422,13 @@ muzzle)
appNewVersion=$(curl -fs https://muzzleapp.com/updates/ | grep -io 'h2.*Version.* [0-9.]*.*h2' | head -1 | sed -E 's/.*ersion *([0-9.]*).*/\1/g') appNewVersion=$(curl -fs https://muzzleapp.com/updates/ | grep -io 'h2.*Version.* [0-9.]*.*h2' | head -1 | sed -E 's/.*ersion *([0-9.]*).*/\1/g')
expectedTeamID="49EYHPJ4Q3" expectedTeamID="49EYHPJ4Q3"
;; ;;
nanosaur)
name="Nanosaur"
type="dmg"
downloadURL=$(downloadURLFromGit jorio Nanosaur)
appNewVersion=$(versionFromGit jorio Nanosaur)
expectedTeamID="RVNL7XC27G"
;;
netnewswire) netnewswire)
name="NetNewsWire" name="NetNewsWire"
type="zip" type="zip"
@@ -4064,13 +4176,14 @@ superhuman)
expectedTeamID="6XHFYUTQGX" expectedTeamID="6XHFYUTQGX"
;; ;;
supportapp) supportapp)
# credit: Søren Theilgaard (@theilgaard)
name="Support" name="Support"
type="pkg" type="pkg"
packageID="nl.root3.support" packageID="nl.root3.support"
downloadURL=$(downloadURLFromGit root3nl SupportApp) downloadURL=$(downloadURLFromGit root3nl SupportApp)
appNewVersion=$(versionFromGit root3nl SupportApp) appNewVersion=$(versionFromGit root3nl SupportApp)
expectedTeamID="98LJ4XBGYK" expectedTeamID="98LJ4XBGYK"
uid=$(id -u "$currentUser")
launchctl bootout gui/${uid} "/Library/LaunchAgents/nl.root3.support.plist"
;; ;;
suspiciouspackage) suspiciouspackage)
# credit: Mischa van der Bent (@mischavdbent) # credit: Mischa van der Bent (@mischavdbent)
@@ -4178,6 +4291,13 @@ telegram)
appNewVersion=$( curl -fs https://macos.telegram.org | grep anchor | head -1 | sed -E 's/.*a>([0-9.]*) .*/\1/g' ) appNewVersion=$( curl -fs https://macos.telegram.org | grep anchor | head -1 | sed -E 's/.*a>([0-9.]*) .*/\1/g' )
expectedTeamID="6N38VWS5BX" expectedTeamID="6N38VWS5BX"
;; ;;
tembo)
name="Tembo"
type="zip"
downloadURL="$(curl -fs https://www.houdah.com/tembo/updates/cast2.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
appNewVersion="$(curl -fs https://www.houdah.com/tembo/updates/cast2.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
expectedTeamID="DKGQD8H8ZY"
;;
textexpander) textexpander)
name="TextExpander" name="TextExpander"
type="dmg" type="dmg"
@@ -4453,6 +4573,14 @@ wireshark)
appNewVersion=$(curl -fs https://www.wireshark.org/download.html | grep -i "href.*_stable" | sed -E 's/.*\(([0-9.]*)\).*/\1/g') appNewVersion=$(curl -fs https://www.wireshark.org/download.html | grep -i "href.*_stable" | sed -E 's/.*\(([0-9.]*)\).*/\1/g')
expectedTeamID="7Z6EMTD2C6" expectedTeamID="7Z6EMTD2C6"
;; ;;
wordservice)
name="WordService"
type="zip"
downloadURL="$(curl -fs -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" "https://www.devontechnologies.com/support/download" | tr '"' "\n" | grep -o "http.*download.*.zip" | grep -i wordservice | head -1)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
appNewVersion=""
expectedTeamID="679S2QUWR8"
;;
wwdc) wwdc)
# credit: Søren Theilgaard (@theilgaard) # credit: Søren Theilgaard (@theilgaard)
name="WWDC" name="WWDC"
@@ -4475,6 +4603,14 @@ xink)
appNewVersion=$(curl -fs "https://downloads.xink.io/macos/appcast" | xpath '(//rss/channel/item/enclosure/@sparkle:version)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2) appNewVersion=$(curl -fs "https://downloads.xink.io/macos/appcast" | xpath '(//rss/channel/item/enclosure/@sparkle:version)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)
expectedTeamID="F287823HVS" expectedTeamID="F287823HVS"
;; ;;
xmenu)
name="XMenu"
type="zip"
downloadURL="$(curl -fs "https://www.devontechnologies.com/apps/freeware" | grep -o "http.*download.*.zip" | grep -i xmenu)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;
xquartz) xquartz)
# credit: AP Orlebeke (@apizz) # credit: AP Orlebeke (@apizz)
name="XQuartz" name="XQuartz"
@@ -4540,6 +4676,7 @@ zoom)
downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg" downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg"
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)" appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
expectedTeamID="BJ4HAAB9B3" expectedTeamID="BJ4HAAB9B3"
versionKey="CFBundleVersion"
;; ;;
zoomclient) zoomclient)
name="zoom.us" name="zoom.us"
@@ -4561,6 +4698,7 @@ zoomgov)
downloadURL="https://www.zoomgov.com/client/latest/ZoomInstallerIT.pkg" downloadURL="https://www.zoomgov.com/client/latest/ZoomInstallerIT.pkg"
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)" appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
expectedTeamID="BJ4HAAB9B3" expectedTeamID="BJ4HAAB9B3"
versionKey="CFBundleVersion"
;; ;;
zoomrooms) zoomrooms)
name="ZoomRooms" name="ZoomRooms"
@@ -4788,7 +4926,7 @@ if [[ -n $appNewVersion ]]; then
printlog "notifying" printlog "notifying"
displaynotification "$message" "No update for $name!" displaynotification "$message" "No update for $name!"
fi fi
cleanupAndExit 0 "No newer version." WARN cleanupAndExit 0 "No newer version." REQ
fi fi
else else
printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." WARN printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." WARN
@@ -4804,10 +4942,9 @@ if [[ (-n $appversion && -n "$updateTool") || "$type" == "updateronly" ]]; then
if [[ $DEBUG -ne 1 ]]; then if [[ $DEBUG -ne 1 ]]; then
if runUpdateTool; then if runUpdateTool; then
finishing finishing
cleanupAndExit 0 cleanupAndExit 0 "updateTool has run" REQ
elif [[ $type == "updateronly" ]];then elif [[ $type == "updateronly" ]];then
printlog "type is $type so we end here." cleanupAndExit 0 "type is $type so we end here." REQ
cleanupAndExit 0
fi # otherwise continue fi # otherwise continue
else else
printlog "DEBUG mode 1 enabled, not running update tool" WARN printlog "DEBUG mode 1 enabled, not running update tool" WARN
@@ -4913,4 +5050,4 @@ esac
finishing finishing
# all done! # all done!
cleanupAndExit 0 cleanupAndExit 0 "All done!" REQ

View File

@@ -1,4 +1,5 @@
1password7 1password7
1passwordcli
4kvideodownloader 4kvideodownloader
8x8 8x8
abstract abstract
@@ -16,6 +17,7 @@ alephone
alfred alfred
alttab alttab
amazonchime amazonchime
amazoncorretto8jdk
amazonworkspaces amazonworkspaces
androidfiletransfer androidfiletransfer
anydesk anydesk
@@ -34,11 +36,14 @@ atext
atom atom
audacity audacity
authydesktop authydesktop
autodeskfusion360admininstall
autodmg autodmg
autopkgr autopkgr
aviatrix aviatrix
awscli2 awscli2
awsvpnclient awsvpnclient
axurerp10
azuredatastudio
balenaetcher balenaetcher
balsamiqwireframes balsamiqwireframes
bartender bartender
@@ -55,6 +60,7 @@ brave
bugdom bugdom
caffeine caffeine
cakebrew cakebrew
calcservice
calibre calibre
camostudio camostudio
camtasia camtasia
@@ -64,6 +70,7 @@ cisdem-documentreader
citrixworkspace citrixworkspace
clevershare2 clevershare2
clickshare clickshare
clipy
closeio closeio
cloudya cloudya
code42 code42
@@ -88,9 +95,11 @@ dialpad
discord discord
diskspace diskspace
docker docker
dockutil
drift drift
dropbox dropbox
easeusdatarecoverywizard easeusdatarecoverywizard
easyfind
egnyte egnyte
element element
eraseinstall eraseinstall
@@ -130,6 +139,7 @@ googlesoftwareupdate
gotomeeting gotomeeting
gpgsuite gpgsuite
gpgsync gpgsync
grammarly
grandperspective grandperspective
grasshopper grasshopper
gyazo gyazo
@@ -137,6 +147,7 @@ gyazogif
hancock hancock
handbrake handbrake
hazel hazel
houdahspot
hpeasyadmin hpeasyadmin
hpeasystart hpeasystart
hyper hyper
@@ -187,6 +198,7 @@ loom
lowprofile lowprofile
lucifer lucifer
lulu lulu
macadminspython
maccyapp maccyapp
macfuse macfuse
macports macports
@@ -197,8 +209,10 @@ marathoninfinity
mattermost mattermost
menumeters menumeters
microsoftautoupdate microsoftautoupdate
microsoftazuredatastudio
microsoftazurestorageexplorer microsoftazurestorageexplorer
microsoftcompanyportal microsoftcompanyportal
microsoftdefender
microsoftdefenderatp microsoftdefenderatp
microsoftedge microsoftedge
microsoftedgeconsumerstable microsoftedgeconsumerstable
@@ -229,6 +243,7 @@ montereyblocker
mowgliiitsycal mowgliiitsycal
musescore musescore
muzzle muzzle
nanosaur
netnewswire netnewswire
nextcloud nextcloud
nomad nomad
@@ -335,6 +350,7 @@ sublimetext
superhuman superhuman
supportapp supportapp
suspiciouspackage suspiciouspackage
swiftdialog
swiftruntimeforcommandlinetools swiftruntimeforcommandlinetools
sync sync
tableaudesktop tableaudesktop
@@ -348,6 +364,7 @@ teamviewerhost
teamviewerqs teamviewerqs
techsmithcapture techsmithcapture
telegram telegram
tembo
textexpander textexpander
textmate textmate
theunarchiver theunarchiver
@@ -385,9 +402,11 @@ whatsapp
wickrme wickrme
wickrpro wickrpro
wireshark wireshark
wordservice
wwdc wwdc
xeroxphaser7800 xeroxphaser7800
xink xink
xmenu
xquartz xquartz
yed yed
yubikeymanagerqt yubikeymanagerqt

View File

@@ -1 +1 @@
9.1beta 9.1