updated changelog and main script

This commit is contained in:
Armin Briegel
2022-09-02 15:17:51 +02:00
parent 42126caa21
commit 9e9a65337d
3 changed files with 371 additions and 76 deletions

View File

@@ -1,3 +1,62 @@
## v10beta2
- fixed problem with GitHub labels (#659)
- bz2 archive support (#659)
- fixed WorkspaceOne support (#653)
Plus everything from v10beta1
- new labels:
- abetterfinderrename11 (#552)
- carboncopycloner (#553)
- cocoapods (#659)
- coconutbattery (#588)
- cricutdesignspace (#562)
- dynalist (#591)
- fellow (#591)
- flexoptixapp (#554)
- googleadseditor (#652, #541)
- kap (#568)
- keepingyouawake (#549)
- lcadvancedvpnclient (#584)
- masv (#569)
- merlinproject (#555)
- mongodbcompass (#654)
- netspot (#556)
- relatel (#619)
- sonicvisualiser (#575)
- strongdm (#559)
- synologyassistant (#557)
- synologydriveclient (#582)
- tencentmeeting (#570)
- typinator (#583)
- xcreds (#675)
- updated labels:
- acroniscyberprotectconnect/remotix (#664)
- acroniscyberprotectconnectagent/remotixagent (#664)
- awsvpnclient (#586)
- boxtools (#589)
- clevershare2 (#664)
- coderunner (#664)
- colourcontrastanalyser (#664)
- cryptomator (#664)
- dangerzone (#664)
- drawio (#664)
- golang (#664)
- icons (#664)
- insomnia (#664)
- knockknock (#664)
- libreoffice (#672)
- macports
- opera (#664)
- supportapp (#664)
- vmwarehorizonclient (#645, #511)
- deleted/deactivated labels:
- microsoftyammer (#664)
- wickrme (#664)
- wickrpro (#664)
## v10beta1
- [swiftDialog](https://github.com/bartreardon/swiftDialog) integration (#641, #632), many thanks to @bartreardon, [sample scripts](in the MDM folder)

View File

@@ -80,6 +80,7 @@ LOGO=appstore
# - mosylem Mosyle Manager (Education)
# - addigy Addigy
# - microsoft Microsoft Endpoint Manager (Intune)
# - ws1 Workspace ONE (AirWatch)
# path can also be set in the command call, and if file exists, it will be used.
# Like 'LOGO="/System/Applications/App\ Store.app/Contents/Resources/AppIcon.icns"'
# (spaces have to be escaped).
@@ -322,7 +323,7 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then
fi
fi
VERSION="10.0beta2"
VERSIONDATE="2022-08-31"
VERSIONDATE="2022-09-02"
# MARK: Functions
@@ -390,9 +391,12 @@ displaynotification() { # $1: message $2: title
message=${1:-"Message"}
title=${2:-"Notification"}
manageaction="/Library/Application Support/JAMF/bin/Management Action.app/Contents/MacOS/Management Action"
hubcli="/usr/local/bin/hubcli"
if [[ -x "$manageaction" ]]; then
"$manageaction" -message "$message" -title "$title"
elif [[ -x "$hubcli" ]]; then
"$hubcli" notify -t "$title" -i "$message" -c "Dismiss"
else
runAsUser osascript -e "display notification \"$message\" with title \"$title\""
fi
@@ -486,10 +490,10 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name
if [ -n "$archiveName" ]; then
#downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$archiveName\"/ { print \$4; exit }")
downloadURL=https://github.com$(curl -sL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -o "\/$gitusername\/$gitreponame.*$archiveName.*")
downloadURL=https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*$archiveName" | head -1)
else
#downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
downloadURL=https://github.com$(curl -sL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -o "\/$gitusername\/$gitreponame.*\.$filetype")
downloadURL=https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)
fi
if [ -z "$downloadURL" ]; then
cleanupAndExit 14 "could not retrieve download URL for $gitusername/$gitreponame" ERROR
@@ -1311,7 +1315,7 @@ updateDialog() {
fi
# when to cmdfile is set, do nothing
if [[ $$cmd_file == "" ]]; then
if [[ $cmd_file == "" ]]; then
return
fi
@@ -1521,6 +1525,13 @@ 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"
;;
abetterfinderrename11)
name="A Better Finder Rename 11"
type="dmg"
downloadURL="https://www.publicspace.net/download/ABFRX11.dmg"
appNewVersion=$(curl -fs "https://www.publicspace.net/app/signed_abfr11.xml" | xpath '(//rss/channel/item/enclosure/@sparkle:version)' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="7Y9KW4ND8W"
;;
abstract)
name="Abstract"
type="zip"
@@ -1528,6 +1539,25 @@ abstract)
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
expectedTeamID="77MZLZE47D"
;;
acroniscyberprotectconnect|\
remotix)
name="Acronis Cyber Protect Connect"
type="dmg"
downloadURL="https://go.acronis.com/AcronisCyberProtectConnect_ForMac"
versionKey="CFBundleVersion"
appNewVersion=$(curl -fsIL "${downloadURL}" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-[0-9.]*-([0-9.]*)\.dmg/\1/g')
expectedTeamID="ZU2TV78AA6"
;;
acroniscyberprotectconnectagent|\
remotixagent)
name="Acronis Cyber Protect Connect Agent"
type="pkg"
#packageID="com.nulana.rxagentmac"
downloadURL="https://go.acronis.com/AcronisCyberProtectConnect_AgentForMac"
versionKey="CFBundleVersion"
appNewVersion=$(curl -fsIL "${downloadURL}" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-[0-9.]*-([0-9.]*)\.pkg/\1/g')
expectedTeamID="H629V387SY"
;;
adobebrackets)
name="Brackets"
type="dmg"
@@ -1852,7 +1882,7 @@ awsvpnclient)
type="pkg"
downloadURL="https://d20adtppz83p9s.cloudfront.net/OSX/latest/AWS_VPN_Client.pkg"
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"
@@ -1969,6 +1999,7 @@ boxtools)
name="Box Tools"
type="pkg"
downloadURL="https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg"
packageID="com.box.boxtools.installer.boxedit"
expectedTeamID="M683GB7CPW"
;;
brave)
@@ -2073,6 +2104,13 @@ canva)
fi
expectedTeamID="5HD2ARTBFS"
;;
carboncopycloner)
name="Carbon Copy Cloner"
type="zip"
downloadURL=$(curl -fsIL "https://bombich.com/software/download_ccc.php?v=latest" | grep -i ^location | sed -E 's/.*(https.*\.zip).*/\1/g')
appNewVersion=$(sed -E 's/.*-([0-9.]*)\.zip/\1/g' <<< $downloadURL | sed 's/\.[^.]*$//')
expectedTeamID="L4F2DED5Q7"
;;
chatwork)
name="Chatwork"
type="dmg"
@@ -2097,8 +2135,9 @@ citrixworkspace)
clevershare2)
name="Clevershare"
type="dmg"
downloadURL=$(curl -fs https://www.clevertouch.com/eu/clevershare2g | grep -i -o -E "https.*Mac.*\.dmg")
appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z-]*_Mac\.([0-9.]*)\.[0-9]*\.dmg$/\1/g' )
printlog "Label for $name broken in test" ERROR
downloadURL=$(curl -fs https://www.clevertouch.com/eu/clevershare2g | grep -i -o -E "https.*notarized.*\.dmg")
appNewVersion=$(echo "${downloadURL}" | sed -E 's/.*\/([0-9.]*)\/[0-9]*\/.*\.dmg$/\1/')
expectedTeamID="P76M9BE8DQ"
;;
clickshare)
@@ -2147,6 +2186,20 @@ cluefull)
versionKey="CFBundleVersion"
expectedTeamID="3NX6B9TB2F"
;;
cocoapods)
name="CocoaPods"
type="bz2"
downloadURL="$(downloadURLFromGit CocoaPods CocoaPods-app)"
appNewVersion="$(versionFromGit CocoaPods CocoaPods-app)"
expectedTeamID="AX2Q2BH2XR"
;;
coconutbattery)
name="coconutBattery"
type="zip"
downloadURL="https://coconut-flavour.com/downloads/coconutBattery_latest.zip"
appNewVersion=$(curl -fs https://www.coconut-flavour.com/coconutbattery/ | grep "<title>" | sed -e 's/.*coconutBattery \(.*\) - by coconut-flavour.co.*/\1/')
expectedTeamID="R5SC3K86L5"
;;
code42)
name="Code42"
type="pkgInDmg"
@@ -2159,14 +2212,14 @@ code42)
blockingProcesses=( NONE )
;;
coderunner)
# credit: Erik Stam (@erikstam)
name="CodeRunner"
type="zip"
downloadURL="https://coderunnerapp.com/download"
appNewVersion=$(curl -fsIL ${downloadURL} | grep -i "^location" | cut -d " " -f2 | sed -E 's/.*CodeRunner-([0-9.]*).zip/\1/')
expectedTeamID="R4GD98AJF9"
;;
colourcontrastanalyser)
name="Colour Contrast Analyser (CCA)"
name="Colour Contrast Analyser"
type="dmg"
downloadURL=$(downloadURLFromGit ThePacielloGroup CCAe)
appNewVersion=$(versionFromGit ThePacielloGroup CCAe)
@@ -2196,9 +2249,22 @@ craftmanagerforsketch)
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"
;;
cricutdesignspace)
name="Cricut Design Space"
type="dmg"
appNewVersion=$(getJSONValue "$(curl -fsL https://s3-us-west-2.amazonaws.com/staticcontent.cricut.com/a/software/osx-native/latest.json)" "rolloutVersion")
downloadURL=$(getJSONValue $(curl -fsL "https://apis.cricut.com/desktopdownload/InstallerFile?shard=a&operatingSystem=osxnative&fileName=CricutDesignSpace-Install-v${appNewVersion}.dmg") "result")
expectedTeamID="25627ZFVT7"
;;
cryptomator)
name="Cryptomator"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
archiveName="Cryptomator-[0-9.]*-arm64.dmg"
elif [[ $(arch) == "i386" ]]; then
archiveName="Cryptomator-[0-9.]*.dmg"
fi
downloadURL=$(downloadURLFromGit cryptomator cryptomator)
appNewVersion=$(versionFromGit cryptomator cryptomator)
expectedTeamID="YZQJQUHA3L"
@@ -2220,8 +2286,8 @@ daisydisk)
dangerzone)
name="Dangerzone"
type="dmg"
downloadURL="$(downloadURLFromGit firstlookmedia dangerzone)"
appNewVersion="$(versionFromGit firstlookmedia dangerzone)"
downloadURL="$(downloadURLFromGit freedomofpress dangerzone)"
appNewVersion="$(versionFromGit freedomofpress dangerzone)"
expectedTeamID="N9B95FDWH4"
;;
darktable)
@@ -2354,7 +2420,7 @@ dockutil)
drawio)
name="draw.io"
type="dmg"
archiveName="draw.io-universal-[0-9.]*.dmg"
archiveName="draw.io-universal-[0-9.]*.dmg$"
downloadURL="$(downloadURLFromGit jgraph drawio-desktop)"
appNewVersion="$(versionFromGit jgraph drawio-desktop)"
expectedTeamID="UZEUFB4N53"
@@ -2393,6 +2459,13 @@ duodevicehealth)
expectedTeamID="FNN8Z5JMFP"
;;
dynalist)
name="Dynalist"
type="dmg"
downloadURL="https://dynalist.io/standalone/download?file=Dynalist.dmg"
appNewVersion=""
expectedTeamID="6JSW4SJWN9"
;;
easeusdatarecoverywizard)
# credit: Søren Theilgaard (@theilgaard)
name="EaseUS Data Recovery Wizard"
@@ -2500,6 +2573,13 @@ favro)
appNewVersion="$(curl -fs https://download.favro.com/FavroDesktop/macOS/x64/Latest.html | cut -d ">" -f1 | cut -d "=" -f 4 | cut -d '"' -f1 | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')"
expectedTeamID="PUA8Q354ZF"
;;
fellow)
name="Fellow"
type="dmg"
downloadURL="https://cdn.fellow.app/desktop/1.3.11/darwin/stable/universal/Fellow-1.3.11-universal.dmg"
appNewVersion=""
expectedTeamID="2NF46HY8D8"
;;
ferdi)
name="Ferdi"
type="zip"
@@ -2658,6 +2738,13 @@ firefoxpkg_intl)
expectedTeamID="43AQ936H96"
blockingProcesses=( firefox )
;;
flexoptixapp)
name="FLEXOPTIX App"
type="dmg"
downloadURL="https://flexbox.reconfigure.me/download/electron/mac/x64/current"
appNewVersion=$(curl -fsIL "${downloadURL}" | grep -i ^location | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')
expectedTeamID="C5JETSFPHL"
;;
flowjo)
name="FlowJo-OSX64-10.8.0"
type="dmg"
@@ -2731,11 +2818,22 @@ golang)
name="GoLang"
type="pkg"
packageID="org.golang.go"
downloadURL="https://go.dev$(curl -fs "https://go.dev/dl/" | grep -i "downloadBox" | grep "pkg" | tr '"' '\n' | grep "pkg")"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://go.dev$(curl -fs "https://go.dev/dl/" | grep -i "downloadBox" | grep "darwin-arm" | tr '"' '\n' | grep "pkg")"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://go.dev$(curl -fs "https://go.dev/dl/" | grep -i "downloadBox" | grep "darwin-amd" | tr '"' '\n' | grep "pkg")"
fi
appNewVersion="$( echo "${downloadURL}" | sed -E 's/.*\/(go[0-9.]*)\..*/\1/g' )" # Version includes letters "go" in the beginning
expectedTeamID="EQHXZ8M8AV"
blockingProcesses=( NONE )
;;
googleadseditor)
name="Google Ads Editor"
type="dmg"
downloadURL="https://dl.google.com/adwords_editor/google_ads_editor.dmg"
appNewVersion=""
expectedTeamID="EQHXZ8M8AV"
;;
googlechrome)
name="Google Chrome"
type="dmg"
@@ -2951,11 +3049,10 @@ ibarcoder)
expectedTeamID="JAXVB9AH9M"
;;
icons)
# credit: Mischa van der Bent (@mischavdbent)
name="Icons"
type="zip"
downloadURL=$(downloadURLFromGit sap macOS-icon-generator )
appNewVersion=$(versionFromGit sap macOS-icon-generator )
downloadURL=$(downloadURLFromGit SAP macOS-icon-generator )
appNewVersion=$(versionFromGit SAP macOS-icon-generator )
expectedTeamID="7R5ZEU67FQ"
;;
idrive)
@@ -3009,10 +3106,12 @@ inkscape)
expectedTeamID="SW3D6BB6A6"
;;
insomnia)
name="insomnia"
name="Insomnia"
type="dmg"
downloadURL=$(downloadURLFromGit kong insomnia)
appNewVersion=$(versionFromGit kong insomnia)
#downloadURL=$(downloadURLFromGit kong insomnia)
downloadURL=$(curl -fs "https://updates.insomnia.rest/downloads/mac/latest?app=com.insomnia.app&source=website" | grep -o "https.*\.dmg")
#appNewVersion=$(versionFromGit kong insomnia)
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\/Insomnia.Core.([0-9.]*)\.dmg/\1/')
expectedTeamID="FX44YY62GV"
;;
installomator|\
@@ -3230,6 +3329,20 @@ jetbrainswebstorm)
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' )
expectedTeamID="2ZEFAR8TH3"
;;
kap)
# credit: Lance Stephens (@pythoninthegrass on MacAdmins Slack)
name="Kap"
type="dmg"
if [[ $(arch) = "i386" ]]; then
archiveName="${name}-[0-9.]*-x64.${type}"
downloadURL=$(downloadURLFromGit wulkano kap | grep -i x64)
else
archiveName="${name}-[0-9.]*-arm64.${type}"
downloadURL=$(downloadURLFromGit wulkano kap | grep -i arm64)
fi
appNewVersion=$(versionFromGit wulkano Kap)
expectedTeamID="2KEEHXF6R6"
;;
karabinerelements)
# credit: Tadayuki Onishi (@kenchan0130)
name="Karabiner-Elements"
@@ -3250,6 +3363,14 @@ keepassxc)
appNewVersion=$(versionFromGit keepassxreboot keepassxc)
expectedTeamID="G2S7P7J672"
;;
keepingyouawake)
name="KeepingYouAwake"
type="zip"
downloadURL=$(downloadURLFromGit newmarcel KeepingYouAwake)
appNewVersion=$(versionFromGit newmarcel KeepingYouAwake)
expectedTeamID="5KESHV9W85"
blockingProcesses=( "KeepingYouAwake" )
;;
keka)
name="Keka"
type="dmg"
@@ -3283,8 +3404,8 @@ klokki)
knockknock)
name="KnockKnock"
type="zip"
downloadURL=$( curl -fs "https://objective-see.com/products/knockknock.html" | grep https | grep "$type" | head -1 | tr '"' "\n" | grep "^http" )
appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*_([0-9.]*)\..*/\1/g' )
downloadURL="$(downloadURLFromGit objective-see KnockKnock)"
appNewVersion="$(versionFromGit objective-see KnockKnock)"
expectedTeamID="VBG97UB4TA"
;;
krisp)
@@ -3316,6 +3437,13 @@ launchbar)
appNewVersion=$( echo ${downloadURL} | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
expectedTeamID="MLZF7K7B5R"
;;
lcadvancedvpnclient)
name="LANCOM Advanced VPN Client"
type="pkgInDmg"
appNewVersion=$(curl -fs https://www.ncp-e.com/de/service/download-vpn-client/ | grep -m 1 "NCP Secure Entry macOS Client" -A 1 | grep -i Version | sed "s|.*Version \(.*\) Rev.*|\\1|")
downloadURL=$(appShortVersion=`sed 's/[^0-9]//g' <<< $appNewVersion` && echo https://ftp.lancom.de/LANCOM-Releases/LC-VPN-Client/LC-Advanced-VPN-Client-macOS-"${appShortVersion}"-Rel-x86-64.dmg)
expectedTeamID="LL3KBL2M3A"
;;
lexarrecoverytool)
name="Lexar Recovery Tool"
type="appInDmgInZip"
@@ -3326,10 +3454,10 @@ libreoffice)
name="LibreOffice"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://download.documentfoundation.org/libreoffice/stable/$(curl -s https://www.libreoffice.org/download/download/ | grep dl_version_number | head -n 1 | cut -d'>' -f3 | cut -d'<' -f1)/mac/aarch64/LibreOffice_$(curl -s https://www.libreoffice.org/download/download/ | grep dl_version_number | head -n 1 | cut -d'>' -f3 | cut -d'<' -f1)_MacOS_aarch64.dmg"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://download.documentfoundation.org/libreoffice/stable/$(curl -s https://www.libreoffice.org/download/download/ | grep dl_version_number | head -n 1 | cut -d'>' -f3 | cut -d'<' -f1)/mac/x86_64/LibreOffice_$(curl -s https://www.libreoffice.org/download/download/ | grep dl_version_number | head -n 1 | cut -d'>' -f3 | cut -d'<' -f1)_MacOS_x86-64.dmg"
arch_type="aarch64"
fi
libreoffice_latest_version="$(curl -Ls https://www.libreoffice.org/download/download-libreoffice/ | grep dl_version_number | head -n 1 | cut -d'>' -f3 | cut -d'<' -f1)"
downloadURL="https://download.documentfoundation.org/libreoffice/stable/${libreoffice_latest_version}/mac/${arch_type:-x86_64}/LibreOffice_${libreoffice_latest_version}_MacOS_${arch_type:-x86-64}.dmg"
appNewVersion=$(echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*_([0-9.]*)_.*/\1/g')
expectedTeamID="7P5S3ZLCN7"
blockingProcesses=( soffice )
@@ -3497,6 +3625,12 @@ marathoninfinity)
appNewVersion="$(versionFromGit Aleph-One-Marathon alephone)"
expectedTeamID="E8K89CXZE7"
;;
masv)
name="MASV"
type="dmg"
downloadURL="https://dl.massive.io/MASV.dmg"
expectedTeamID="VHKX7RCAY7"
;;
mattermost)
name="Mattermost"
type="dmg"
@@ -3513,6 +3647,13 @@ menumeters)
appNewVersion=$(versionFromGit yujitach MenuMeters )
expectedTeamID="95AQ7YKR5A"
;;
merlinproject)
name="Merlin Project"
type="zip"
downloadURL="https://www.projectwizards.net/downloads/MerlinProject.zip"
appNewVersion="$(curl -fs "https://www.projectwizards.net/de/support/release-notes" | grep Version | head -n 6 | tail -n 1 | sed 's/[^0-9.]*//g')"
expectedTeamID="9R6P9VZV27"
;;
microsoftautoupdate)
name="Microsoft AutoUpdate"
type="pkg"
@@ -3774,16 +3915,6 @@ microsoftword)
updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
updateToolArguments=( --install --apps MSWD2019 )
;;
microsoftyammer)
name="Yammer"
type="dmg"
downloadURL="https://aka.ms/yammer_desktop_mac"
#appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/oldpackage[id="com.microsoft.yammer.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/<cfbundleshortversionstring>([0-9.]*)<.*/\1/')
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g')
expectedTeamID="UBF8T346G9"
#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"
@@ -3905,6 +4036,14 @@ mochatn5250)
appNewVersion=""
expectedTeamID="RR9F5EPNVW"
;;
mongodbcompass)
name="MongoDB Compass"
type="dmg"
archiveName="mongodb-compass-[0-9.]*-darwin-x64.dmg"
downloadURL="$(downloadURLFromGit mongodb-js compass)"
appNewVersion="$(versionFromGit mongodb-js compass)"
expectedTeamID="4XWMY46275"
;;
montereyblocker)
name="montereyblocker"
type="pkg"
@@ -3950,6 +4089,13 @@ netnewswire)
appNewVersion=$(curl -fs https://ranchero.com/downloads/netnewswire-release.xml | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="M8L2WTLA8W"
;;
netspot)
name="NetSpot"
type="dmg"
downloadURL="https://cdn.netspotapp.com/download/NetSpot.dmg"
appNewVersion=$(curl -fs "https://www.netspotapp.com/updates/netspot2-appcast.xml" | xpath '(//rss/channel/item/enclosure/@sparkle:version)' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="5QLDY8TU83"
;;
nextcloud)
name="nextcloud"
type="pkg"
@@ -4131,8 +4277,8 @@ openvpnconnectv3)
opera)
name="Opera"
type="dmg"
downloadURL=$(curl -fsIL "$(curl -fs "$(curl -fsIL "https://download.opera.com/download/get/?partner=www&opsys=MacOS" | grep -i "^location" | cut -d " " -f2 | tail -1 | tr -d '\r')" | grep download.opera.com | grep -io "https.*yes" | sed 's/\&amp;/\&/g')" | grep -i "^location" | cut -d " " -f2 | tr -d '\r')
appNewVersion="$(curl -fs "https://get.geo.opera.com/ftp/pub/opera/desktop/" | grep "href=\"\d" | sort -V | tail -1 | tr '"' '\n' | grep "/" | head -1 | tr -d '/')"
downloadURL="$(curl -fsIL "$(curl -fs "$(curl -fsL "https://download.opera.com/download/get/?partner=www&opsys=MacOS" | tr '"' "\n" | grep -e "www.opera.com.*thanks.*opera" | sed 's/\&amp\;/\&/g')" | tr '"' "\n" | grep "download.opera.com" | sed 's/\&amp\;/\&/g')" | grep -i "^location" | grep -io "https.*dmg")"
appNewVersion="$(printf "$downloadURL" | sed -E 's/https.*\/([0-9.]*)\/mac\/.*/\1/')"
versionKey="CFBundleVersion"
expectedTeamID="A2P9LX4JPN"
;;
@@ -4378,6 +4524,13 @@ redeye)
appNewVersion=$( curl -fs "https://www.hexedbits.com/redeye/" | grep "Latest version" | sed -E 's/.*Latest version ([0-9.]*),.*/\1/g' )
expectedTeamID="5VRJU68BZ5"
;;
relatel)
name="Relatel"
type="dmg"
downloadURL="https://cdn.rela.tel/www/public/junotron/Relatel.dmg"
appNewVersion="$(curl -fs "https://cdn.firmafon.dk/www/public/junotron/latest-mac.yml" | grep -i "version" | cut -w -f2)"
expectedTeamID="B9358QF55B"
;;
remotedesktopmanagerenterprise)
name="Remote Desktop Manager"
type="dmg"
@@ -4393,21 +4546,6 @@ remotedesktopmanagerfree)
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
expectedTeamID="N592S9ASDB"
;;
remotix)
name="Remotix"
type="dmg"
downloadURL="https://remotix.com/downloads/latest-remotix-mac/"
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-.*\.dmg/\1/g' )
expectedTeamID="K293Y6CVN4"
;;
remotixagent)
name="RemotixAgent"
type="pkg"
packageID="com.nulana.rxagentmac"
downloadURL="https://remotix.com/downloads/latest-agent-mac/"
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-.*\.pkg/\1/g' )
expectedTeamID="K293Y6CVN4"
;;
resiliosynchome)
name="Resilio Sync"
type="dmg"
@@ -4700,6 +4838,13 @@ 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"
;;
sonicvisualiser)
name="Sonic Visualiser"
type="dmg"
downloadURL="$(downloadURLFromGit sonic-visualiser sonic-visualiser)"
appNewVersion="$(versionFromGit sonic-visualiser sonic-visualiser)"
expectedTeamID="73F996B92S"
;;
sonobus)
name="Sonobus"
type="pkgInDmg"
@@ -4768,6 +4913,15 @@ steelseriesengine)
appNewVersion="$(curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*SteelSeriesGG([0-9.]*)\.pkg/\1/')"
expectedTeamID="6WGL6CHFH2"
;;
strongdm)
name="strongDM"
type="dmg"
downloadURL="https://app.strongdm.com/downloads/client/darwin"
appNewVersion=$(curl -fsLIXGET "https://app.strongdm.com/downloads/client/darwin" | grep -i "^content-disposition" | sed -e 's/.*filename\=\"SDM\-\(.*\)\.dmg\".*/\1/')
appName="SDM.app"
blockingProcesses=( "SDM" )
expectedTeamID="W5HSYBBJGA"
;;
strongsync)
name="Strongsync"
type="dmg"
@@ -4803,8 +4957,7 @@ supportapp)
downloadURL=$(downloadURLFromGit root3nl SupportApp)
appNewVersion=$(versionFromGit root3nl SupportApp)
expectedTeamID="98LJ4XBGYK"
uid=$(id -u "$currentUser")
launchctl bootout gui/${uid} "/Library/LaunchAgents/nl.root3.support.plist"
blockingProcesses=( NONE )
;;
suspiciouspackage)
# credit: Mischa van der Bent (@mischavdbent)
@@ -4828,6 +4981,22 @@ sync)
appNewVersion="$(curl -fs "https://www.sync.com/blog/category/desktop/feed/" | xpath '(//channel/item/title)[1]' 2>/dev/null | sed -E 's/^.* ([0-9.]*) .*$/\1/g')"
expectedTeamID="7QR39CMJ3W"
;;
synologyassistant)
name="SynologyAssistant"
type="dmg"
packageID="com.synology.DSAssistant"
appNewVersion="$(curl -sf https://archive.synology.com/download/Utility/Assistant | grep -m 1 /download/Utility/Assistant/ | sed "s|.*>\(.*\)<.*|\\1|")"
downloadURL="https://global.download.synology.com/download/Utility/Assistant/${appNewVersion}/Mac/synology-assistant-${appNewVersion}.dmg"
expectedTeamID="X85BAK35Y4"
;;
synologydriveclient)
name="Synology Drive Client"
type="pkgInDmg"
packageID="com.synology.CloudStation"
downloadURL=$(appVersion=`curl -sf https://archive.synology.com/download/Utility/SynologyDriveClient | grep -m 1 /download/Utility/SynologyDriveClient/ | sed "s|.*>\(.*\)<.*|\\1|"` && appShortVersion=`sed 's#.*-\(\)#\1#' <<< $appVersion` && echo https://global.download.synology.com/download/Utility/SynologyDriveClient/"$appVersion"/Mac/Installer/synology-drive-client-"${appShortVersion}".dmg)
appNewVersion=$(appVersionP1=`curl -sf https://archive.synology.com/download/Utility/SynologyDriveClient | grep -m 1 /download/Utility/SynologyDriveClient/ | sed "s|.*>\(.*\)-.*|\\1|"` && sed 's/\(.\{0\}\)./\17/' <<< $appVersionP1)
expectedTeamID="X85BAK35Y4"
;;
tableaudesktop)
name="Tableau Desktop"
type="pkgInDmg"
@@ -4928,6 +5097,21 @@ tembo)
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"
;;
tencentmeeting)
name="TencentMeeting"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="$(curl -fs 'https://meeting.tencent.com/web-service/query-download-info?q=%5B%7B%22package-type%22%3A%22app%22%2C%22channel%22%3A%220300000000%22%2C%22platform%22%3A%22mac%22%2C%22arch%22%3A%22arm64%22%7D%5D&c_os=web&c_os_version=1&c_os_model=web&c_timestamp=1653366550252&c_instance_id=5&c_nonce=DcaDam4y&c_app_id=1400143280&c_app_version=1&c_lang=zh-cn&c_district=0&nonce=miwSceJNQaSZttma' -H 'authority: meeting.tencent.com' -H 'referer: https://meeting.tencent.com/download-mac.html?from=1000&fromSource=1&macType=apple' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15' | grep -o "https://updatecdn.meeting.qq.com[^']*\.publish.arm64.dmg")"
appNewVersion=$(curl -fs 'https://meeting.tencent.com/web-service/query-download-info?q=%5B%7B%22package-type%22%3A%22app%22%2C%22channel%22%3A%220300000000%22%2C%22platform%22%3A%22mac%22%2C%22arch%22%3A%22arm64%22%7D%5D&c_os=web&c_os_version=1&c_os_model=web&c_timestamp=1653366550252&c_instance_id=5&c_nonce=DcaDam4y&c_app_id=1400143280&c_app_version=1&c_lang=zh-cn&c_district=0&nonce=miwSceJNQaSZttma' -H 'authority: meeting.tencent.com' -H 'referer: https://meeting.tencent.com/download-mac.html?from=1000&fromSource=1&macType=apple' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15' | grep -o "https://updatecdn.meeting.qq.com[^']*\.publish.arm64.dmg" | sed -e 's/.*TencentMeeting\_0300000000\_\(.*\)\.publish\.arm64\.dmg.*/\1/')
elif [[ $(arch) == "i386" ]]; then
downloadURL="$(curl -fs 'https://meeting.tencent.com/web-service/query-download-info?q=%5B%7B%22package-type%22%3A%22app%22%2C%22channel%22%3A%220300000000%22%2C%22platform%22%3A%22mac%22%2C%22arch%22%3A%22x86_64%22%7D%5D&c_os=web&c_os_version=1&c_os_model=web&c_timestamp=1653366500890&c_instance_id=5&c_nonce=jA4P4JPY&c_app_id=1400143280&c_app_version=1&c_lang=zh-cn&c_district=0&nonce=tF6Bm4FYHJwdPeGH' -H 'authority: meeting.tencent.com' -H 'referer: https://meeting.tencent.com/download-mac.html?from=1000&fromSource=1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15' | grep -o "https://updatecdn.meeting.qq.com[^']*\.publish.x86_64.dmg")"
appNewVersion=$(curl -fs 'https://meeting.tencent.com/web-service/query-download-info?q=%5B%7B%22package-type%22%3A%22app%22%2C%22channel%22%3A%220300000000%22%2C%22platform%22%3A%22mac%22%2C%22arch%22%3A%22x86_64%22%7D%5D&c_os=web&c_os_version=1&c_os_model=web&c_timestamp=1653366500890&c_instance_id=5&c_nonce=jA4P4JPY&c_app_id=1400143280&c_app_version=1&c_lang=zh-cn&c_district=0&nonce=tF6Bm4FYHJwdPeGH' -H 'authority: meeting.tencent.com' -H 'referer: https://meeting.tencent.com/download-mac.html?from=1000&fromSource=1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15' | grep -o "https://updatecdn.meeting.qq.com[^']*\.publish.x86_64.dmg" | sed -e 's/.*TencentMeeting\_0300000000\_\(.*\)\.publish\.x86_64\.dmg.*/\1/')
fi
curlOptions=( -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" )
appCustomVersion() { echo "$(defaults read /Applications/TencentMeeting.app/Contents/Info.plist CFBundleShortVersionString)$(echo ".")$(defaults read /Applications/TencentMeeting.app/Contents/Info.plist CFBundleVersion)" }
expectedTeamID="88L2Q4487U"
;;
textexpander)
name="TextExpander"
type="dmg"
@@ -5038,6 +5222,13 @@ tunnelblick)
downloadURL=$(downloadURLFromGit TunnelBlick Tunnelblick )
expectedTeamID="Z2SG5H3HC8"
;;
typinator)
name="Typinator"
type="zip"
downloadURL=https://update.ergonis.com/downloads/products/typinator/Typinator.app.zip
appNewVersion="$(curl -fs https://update.ergonis.com/vck/typinator.xml | grep -i Program_Version | sed "s|.*>\(.*\)<.*|\\1|")"
expectedTeamID="TU7D9Y7GTQ"
;;
typora)
name="Typora"
type="dmg"
@@ -5231,22 +5422,6 @@ whatsapp)
downloadURL="https://web.whatsapp.com/desktop/mac/files/WhatsApp.dmg"
expectedTeamID="57T9237FN3"
;;
wickrme)
# credit: Søren Theilgaard (@theilgaard)
name="WickrMe"
type="dmg"
downloadURL=$( curl -fs https://me-download.wickr.com/api/download/me/download/mac | tr '"' '\n' | grep -e '^https://' )
appNewVersion=$( echo ${downloadURL} | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
expectedTeamID="W8RC3R952A"
;;
wickrpro)
# credit: Søren Theilgaard (@theilgaard)
name="WickrPro"
type="dmg"
downloadURL=$( curl -fs https://me-download.wickr.com/api/download/pro/download/mac | tr '"' '\n' | grep -e '^https://' )
appNewVersion=$( echo ${downloadURL} | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
expectedTeamID="W8RC3R952A"
;;
wireshark)
name="Wireshark"
type="dmg"
@@ -5274,6 +5449,17 @@ wwdc)
appNewVersion=$(versionFromGit insidegui WWDC)
expectedTeamID="8C7439RJLG"
;;
xcreds)
name="XCreds"
#type="pkgInZip"
#packageID="com.twocanoes.pkg.secureremoteaccess"
#downloadURL=$(curl -fs "https://twocanoes.com/products/mac/xcreds/" | grep -ioE "https://.*\.zip" | head -1)
#appNewVersion=$(curl -fs "https://twocanoes.com/products/mac/xcreds/" | grep -io "Current Version:.*" | sed -E 's/.*XCreds *([0-9.]*)<.*/\1/g')
type="pkg"
downloadURL="$(downloadURLFromGit twocanoes xcreds)"
appNewVersion="$(versionFromGit twocanoes xcreds)"
expectedTeamID="UXP6YEHSPW"
;;
xeroxphaser7800)
name="XeroxPhaser"
type="pkgInDmg"
@@ -5493,6 +5679,29 @@ fi
# MARK: application download and installation starts here
# Debug output of all variables in a label
printlog "name=${name}" DEBUG
printlog "appName=${appName}" DEBUG
printlog "type=${type}" DEBUG
printlog "archiveName=${archiveName}" DEBUG
printlog "downloadURL=${downloadURL}" DEBUG
printlog "curlOptions=${curlOptions}" DEBUG
printlog "appNewVersion=${appNewVersion}" DEBUG
printlog "appCustomVersion function: $(if type 'appCustomVersion' 2>/dev/null | grep -q 'function'; then echo "Defined. ${appCustomVersion}"; else; echo "Not defined"; fi)" DEBUG
printlog "versionKey=${versionKey}" DEBUG
printlog "packageID=${packageID}" DEBUG
printlog "pkgName=${pkgName}" DEBUG
printlog "choiceChangesXML=${choiceChangesXML}" DEBUG
printlog "expectedTeamID=${expectedTeamID}" DEBUG
printlog "blockingProcesses=${blockingProcesses}" DEBUG
printlog "installerTool=${installerTool}" DEBUG
printlog "CLIInstaller=${CLIInstaller}" DEBUG
printlog "CLIArguments=${CLIArguments}" DEBUG
printlog "updateTool=${updateTool}" DEBUG
printlog "updateToolArguments=${updateToolArguments}" DEBUG
printlog "updateToolRunAsCurrentUser=${updateToolRunAsCurrentUser}" DEBUG
#printlog "Company=${Company}" DEBUG # Not used
if [[ ${INTERRUPT_DND} = "no" ]]; then
# Check if a fullscreen app is active
if hasDisplaySleepAssertion; then
@@ -5538,6 +5747,11 @@ case $LOGO in
LOGO="/Library/Intune/Microsoft Intune Agent.app/Contents/Resources/AppIcon.icns"
if [[ -z $MDMProfileName ]]; then; MDMProfileName="Management Profile"; fi
;;
ws1)
# Workspace ONE (AirWatch)
LOGO="/Applications/Workspace ONE Intelligent Hub.app/Contents/Resources/AppIcon.icns"
if [[ -z $MDMProfileName ]]; then; MDMProfileName="Device Manager"; fi
;;
esac
if [[ ! -a "${LOGO}" ]]; then
if [[ $(sw_vers -buildVersion) > "19" ]]; then
@@ -5553,7 +5767,7 @@ printlog "Label type: $type" INFO
# MARK: extract info from data
if [ -z "$archiveName" ]; then
case $type in
dmg|pkg|zip|tbz)
dmg|pkg|zip|tbz|bz2)
archiveName="${name}.$type"
;;
pkgInDmg)
@@ -5579,7 +5793,7 @@ fi
if [ -z "$targetDir" ]; then
case $type in
dmg|zip|tbz|app*)
dmg|zip|tbz|bz2|app*)
targetDir="/Applications"
;;
pkg*)
@@ -5760,7 +5974,7 @@ case $type in
zip)
installFromZIP
;;
tbz)
tbz|bz2)
installFromTBZ
;;
pkgInDmg)

View File

@@ -3,7 +3,10 @@
1passwordcli
4kvideodownloader
8x8
abetterfinderrename11
abstract
acroniscyberprotectconnect
acroniscyberprotectconnectagent
adobebrackets
adobeconnect
adobecreativeclouddesktop
@@ -72,6 +75,7 @@ camtasia2019
camtasia2020
camtasia2021
canva
carboncopycloner
chatwork
cisdem-documentreader
citrixworkspace
@@ -82,12 +86,15 @@ closeio
cloudya
clue
cluefull
cocoapods
coconutbattery
code42
coderunner
colourcontrastanalyser
cormorant
craftmanager
craftmanagerforsketch
cricutdesignspace
cryptomator
cyberduck
daisydisk
@@ -112,6 +119,7 @@ drift
dropbox
duckduckgo
duodevicehealth
dynalist
easeusdatarecoverywizard
easyfind
egnyte
@@ -126,6 +134,7 @@ exifrenamer
fantastical
fastscripts
favro
fellow
ferdi
figma
filezilla
@@ -138,6 +147,7 @@ firefoxesr_intl
firefoxesrpkg
firefoxpkg
firefoxpkg_intl
flexoptixapp
flowjo
flux
flycut
@@ -147,6 +157,7 @@ fsmonitor
gimp
githubdesktop
golang
googleadseditor
googlechrome
googlechromeenterprise
googlechromepkg
@@ -207,6 +218,7 @@ jetbrainswebstorm
kap
karabinerelements
keepassxc
keepingyouawake
keka
keybase
keyboardmaestro
@@ -216,6 +228,7 @@ krisp
krita
lastpass
launchbar
lcadvancedvpnclient
lexarrecoverytool
libreoffice
linear
@@ -235,8 +248,10 @@ malwarebytes
marathon
marathon2
marathoninfinity
masv
mattermost
menumeters
merlinproject
microsoftautoupdate
microsoftazuredatastudio
microsoftazurestorageexplorer
@@ -260,7 +275,6 @@ microsoftskypeforbusiness
microsoftteams
microsoftvisualstudiocode
microsoftword
microsoftyammer
mightymike
mindmanager
miro
@@ -271,12 +285,14 @@ mochatelnet
mochatn3270
mochatn3812
mochatn5250
mongodbcompass
montereyblocker
mowgliiitsycal
musescore
muzzle
nanosaur
netnewswire
netspot
nextcloud
nomad
nomadlogin
@@ -333,6 +349,7 @@ ramboxce
rancherdesktop
rectangle
redeye
relatel
remotedesktopmanagerenterprise
remotedesktopmanagerfree
remotix
@@ -377,6 +394,7 @@ snagit2020
snagit2021
snagit2022
snapgeneviewer
sonicvisualiser
sonobus
sonos
sonoss1
@@ -387,6 +405,7 @@ spotify
sqlpropostgres
sqlprostudio
steelseriesengine
strongdm
strongsync
sublimetext
superhuman
@@ -395,6 +414,8 @@ suspiciouspackage
swiftdialog
swiftruntimeforcommandlinetools
sync
synologyassistant
synologydriveclient
tableaudesktop
tableaupublic
tableaureader
@@ -408,6 +429,7 @@ teamviewerqs
techsmithcapture
telegram
tembo
tencentmeeting
textexpander
textmate
theunarchiver
@@ -421,6 +443,7 @@ torbrowser
trex
tunnelbear
tunnelblick
typinator
typora
ultimakercura
umbrellaroamingclient
@@ -447,11 +470,10 @@ webexteams
wechat
whatroute
whatsapp
wickrme
wickrpro
wireshark
wordservice
wwdc
xcreds
xeroxphaser7800
xeroxworkcentre7800
xink