From 3ca4dce814c17856f604cacfdb4f08d99eb5b534 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Tue, 9 Jun 2020 12:37:45 +0200 Subject: [PATCH 01/29] updated version --- Installomator.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index fd116da..a801f31 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -8,8 +8,8 @@ # inspired by the download scripts from William Smith and Sander Schram # with additional ideas and contribution from Isaac Ordonez, Mann consulting -VERSION='0.2' -VERSIONDATE='20200529' +VERSION='0.3' +VERSIONDATE='20200609' export PATH=/usr/bin:/bin:/usr/sbin:/sbin From 8b1298a14829189e068606ebb1d192ca0ead5b17 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 10 Jun 2020 09:53:38 +0200 Subject: [PATCH 02/29] changed googlechromepkg downloadURL so it follows google's recommendation --- Installomator.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index a801f31..729e92b 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -217,7 +217,11 @@ case $label in googlechromepkg) name="Google Chrome" type="pkg" - downloadURL="https://dl.google.com/chrome/mac/stable/gcem/GoogleChrome.pkg" + # + # Note: this url acknowledges that you accept the terms of service + # 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" expectedTeamID="EQHXZ8M8AV" updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent" updateToolArguments=( -runMode oneshot -userInitiated YES ) From ca57ff9de6d12ba8aaaa163f2a3bfdc689648cd1 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Tue, 23 Jun 2020 10:04:21 +0200 Subject: [PATCH 03/29] added vmwarefusion, fixed SonosS1 and things --- Installomator.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 729e92b..bede84a 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -384,9 +384,9 @@ case $label in expectedTeamID="BJ4HAAB9B3" blockingProcesses=( zoom.us ) ;; - sonos) + sonos|sonoss1) # credit: Erik Stam (@erikstam) - name="Sonos" + name="Sonos S1 Controller" type="dmg" downloadURL="https://www.sonos.com/redir/controller_software_mac" expectedTeamID="2G4LW83Q3E" @@ -487,7 +487,7 @@ case $label in expectedTeamID="VEKTX9H2N7" ;; things) - name="Things" + name="Things3" type="zip" downloadURL="https://culturedcode.com/things/download/" expectedTeamID="JLMPQHK86H" @@ -683,6 +683,13 @@ case $label in downloadURL="https://updates.cdn-apple.com/2019/cert/061-41823-20191025-5efc5a59-d7dc-46d3-9096-396bb8cb4a73/SwiftRuntimeForCommandLineTools.dmg" expectedTeamID="Software Update" ;; + vmwarefusion) + # credit: Erik Stam (@erikstam) + name="VMware Fusion" + type="dmg" + downloadURL="https://www.vmware.com/go/getfusion" + expectedTeamID="EG7KH642X6" + ;; # Note: Packages is signed but _not_ notarized, so spctl will reject it From d0fc4033232739b6915ea6b02abd7d179e6a34a0 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 24 Jun 2020 11:38:46 +0200 Subject: [PATCH 04/29] merged googlechrome and googlechromepkg, added sonoss2 --- Installomator.sh | 27 ++++++++++++++++++--------- Labels.txt | 5 +++++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index bede84a..95c6328 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -208,13 +208,7 @@ case $label in downloadURL=$(downloadURLFromGit MagerValp AutoDMG) expectedTeamID="5KQ3D3FG5H" ;; - googlechrome) - name="Google Chrome" - type="dmg" - downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" - expectedTeamID="EQHXZ8M8AV" - ;; - googlechromepkg) + googlechrome|googlechromepkg) name="Google Chrome" type="pkg" # @@ -384,6 +378,8 @@ case $label in expectedTeamID="BJ4HAAB9B3" blockingProcesses=( zoom.us ) ;; + # for compatibility 'sonos' will download and install the S1 Controller + # use 'sonoss2' for the new controller sonos|sonoss1) # credit: Erik Stam (@erikstam) name="Sonos S1 Controller" @@ -391,6 +387,12 @@ case $label in downloadURL="https://www.sonos.com/redir/controller_software_mac" expectedTeamID="2G4LW83Q3E" ;; + sonoss2) + name="Sonos" + type="dmg" + downloadURL="https://www.sonos.com/redir/controller_software_mac2" + expectedTeamID="2G4LW83Q3E" + ;; coderunner) # credit: Erik Stam (@erikstam) name="CodeRunner" @@ -597,10 +599,17 @@ case $label in downloadURL=$(downloadURLFromGit jamf ReEnroller) expectedTeamID="PS2F6S478M" ;; - adobereaderdc) + adobereaderdc|adobereaderdc-install) name="Adobe Acrobat Reader DC" type="pkgInDmg" - downloadURL=$(adobecurrent=`curl -s 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"/AcroRdrDC_"$adobecurrent"_MUI.dmg) + downloadURL=$(curl -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) + expectedTeamID="JQ525L2MZD" + blockingProcesses=( "AdobeReader" ) + ;; + adobereaderdc-update) + name="Adobe Acrobat Reader DC" + type="pkgInDmg" + downloadURL=$(adobecurrent=`curl -s 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) expectedTeamID="JQ525L2MZD" blockingProcesses=( "AdobeReader" ) ;; diff --git a/Labels.txt b/Labels.txt index d53a971..0d9a722 100644 --- a/Labels.txt +++ b/Labels.txt @@ -1,5 +1,7 @@ 1password7 adobereaderdc +adobereaderdc-install +adobereaderdc-update appcleaner atom autodmg @@ -68,6 +70,8 @@ sfsymbols signal slack sonos +sonoss1 +sonoss2 sourcetree spotify sublimetext @@ -80,6 +84,7 @@ tunnelbear umbrellaroamingclient visualstudiocode vlc +vmwarefusion webexmeetings webexteams whatsapp From 85dcfc70bd34d904428aeb3dcea653ffb69d18e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 8 Jul 2020 23:37:25 +0200 Subject: [PATCH 05/29] Tor Browser label With version checking --- Installomator.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index a801f31..4e28bee 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -621,6 +621,14 @@ case $label in downloadURL="https://laptop-updates.brave.com/latest/osx" expectedTeamID="9BNSXJN65R" ;; + torbrowser) + # credit: Søren Theilgaard (@theilgaard) + name="Tor Browser" + type="dmg" + downloadURL=https://www.torproject.org$(curl -fs https://www.torproject.org/download/ | grep "downloadLink" | grep dmg | cut -d '"' -f 4) + appNewVersion=$(curl -fs https://www.torproject.org/download/ | grep "downloadLink" | grep dmg | cut -d '"' -f 4 | cut -d / -f 4) + expectedTeamID="MADPSAYN6T" + ;; umbrellaroamingclient) # credit: Tadayuki Onishi (@kenchan0130) name="Umbrella Roaming Client" From 9e2221f943ce3444930fbe268f2131eedb076ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 9 Jul 2020 20:40:51 +0200 Subject: [PATCH 06/29] Dump the labels, if no label given Printing out the labels in the case statement if no label is given. (And a few extra lines from case-statements further down the script). --- Installomator.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index a801f31..6b6213e 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -168,7 +168,9 @@ printlog "################## Start Installomator" # get the label if [[ $# -eq 0 ]]; then - printlog "no label provided" + printlog "no label provided. Printing labels:" + printlog "$(grep -E '^ *[a-z]*\*?\)$' "$0" | sed -E 's/^ *([a-z]+)[)]$/\1/g' )" + printlog "Omit the last lines from “*)”." exit 1 elif [[ $# -gt 3 ]]; then # jamf uses $4 for the first custom parameter From 127866750e2010e3dad49939da6d74f18a8634a7 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Tue, 14 Jul 2020 16:42:40 +0200 Subject: [PATCH 07/29] added macOS version check --- Installomator.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index 95c6328..9954c81 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -166,6 +166,14 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name printlog "################## Start Installomator" +# check minimal macOS requirement +autoload is-at-least + +if ! is-at-least 10.14 $(sw_vers -productVersion); then + printlog "Installomator requires at least macOS 10.14 Mojave." + exit 98 +fi + # get the label if [[ $# -eq 0 ]]; then printlog "no label provided" From ee91690a0da63aacd59777c9f0301f6b7558d81c Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 11:13:52 +0200 Subject: [PATCH 08/29] switched zip expansion from tar to zip so it works in Mojave --- Installomator.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 9954c81..141defb 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -1144,8 +1144,20 @@ installFromPKG() { installFromZIP() { # unzip the archive printlog "Unzipping $archiveName" - tar -xf "$archiveName" + + # tar -xf "$archiveName" + # note: when you expand a zip using tar in Mojave the expanded + # app will never pass the spctl check + + unzip -o -qq "$archiveName" + installAppWithPath "$tmpDir/$appName" +} + +installFromTBZ() { + # unzip the archive + printlog "Unzipping $archiveName" + tar -xf "$archiveName" installAppWithPath "$tmpDir/$appName" } @@ -1326,9 +1338,12 @@ case $type in pkg) installFromPKG ;; - zip|tbz) + zip) installFromZIP ;; + tbz) + installFromTBZ + ;; pkgInDmg) installPkgInDmg ;; From decc5274f09d9f62a932e11d74135dba0172e73d Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 11:39:02 +0200 Subject: [PATCH 09/29] updated regex, changed whitespaceing of label case statement to simplify filtering --- Installomator.sh | 1341 +++++++++++++++++++++++----------------------- 1 file changed, 670 insertions(+), 671 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 6b6213e..546d021 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -169,9 +169,8 @@ printlog "################## Start Installomator" # get the label if [[ $# -eq 0 ]]; then printlog "no label provided. Printing labels:" - printlog "$(grep -E '^ *[a-z]*\*?\)$' "$0" | sed -E 's/^ *([a-z]+)[)]$/\1/g' )" - printlog "Omit the last lines from “*)”." - exit 1 + grep -E '^[a-z0-9]*\)$' "$0" | tr -d ')' | grep -v -E '^broken' | sort + exit 0 elif [[ $# -gt 3 ]]; then # jamf uses $4 for the first custom parameter printlog "shifting arguments for Jamf" @@ -191,496 +190,496 @@ currentUser=$(scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ { print # labels in case statement case $label in - version) - # print the script VERSION - printlog "$VERSION" - exit 0 - ;; - longversion) - # print the script version - printlog "Installomater: version $VERSION ($VERSIONDATE)" - exit 0 - ;; +version) + # print the script VERSION + printlog "$VERSION" + exit 0 + ;; +longversion) + # print the script version + printlog "Installomater: version $VERSION ($VERSIONDATE)" + exit 0 + ;; - # label descriptions start here - autodmg) - # credit: Mischa van der Bent (@mischavdbent) - name="AutoDMG" - type="dmg" - downloadURL=$(downloadURLFromGit MagerValp AutoDMG) - expectedTeamID="5KQ3D3FG5H" - ;; - googlechrome) - name="Google Chrome" - type="dmg" - downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" - expectedTeamID="EQHXZ8M8AV" - ;; - googlechromepkg) - name="Google Chrome" - type="pkg" - downloadURL="https://dl.google.com/chrome/mac/stable/gcem/GoogleChrome.pkg" - expectedTeamID="EQHXZ8M8AV" - updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent" - updateToolArguments=( -runMode oneshot -userInitiated YES ) - updateToolRunAsCurrentUser=1 - ;; - googlejapaneseinput) - # credit: Tadayuki Onishi (@kenchan0130) - name="GoogleJapaneseInput" - type="pkgInDmg" - pkgName="GoogleJapaneseInput.pkg" - downloadURL="https://dl.google.com/japanese-ime/latest/GoogleJapaneseInput.dmg" - expectedTeamID="EQHXZ8M8AV" - ;; - santa) - # credit: Tadayuki Onishi (@kenchan0130) - name="Santa" - type="pkgInDmg" - downloadURL=$(downloadURLFromGit google santa) - expectedTeamID="EQHXZ8M8AV" - ;; - spotify) - name="Spotify" - type="dmg" - downloadURL="https://download.scdn.co/Spotify.dmg" - expectedTeamID="2FNC3A47ZF" - ;; - bbedit) - name="BBEdit" - type="dmg" - downloadURL=$(curl -s https://versioncheck.barebones.com/BBEdit.xml | grep dmg | sort | tail -n1 | cut -d">" -f2 | cut -d"<" -f1) - expectedTeamID="W52GZAXT98" - ;; - firefox) - name="Firefox" - type="dmg" - downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US" - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - ;; - firefoxpkg) - name="Firefox" - type="pkg" - downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US" - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - ;; - firefoxesrpkg) - name="Firefox" - type="pkg" - downloadURL="https://download.mozilla.org/?product=firefox-esr-pkg-latest-ssl&os=osx" - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - ;; - whatsapp) - name="WhatsApp" - type="dmg" - downloadURL="https://web.whatsapp.com/desktop/mac/files/WhatsApp.dmg" - expectedTeamID="57T9237FN3" - ;; - desktoppr) - name="desktoppr" - type="pkg" - downloadURL=$(downloadURLFromGit "scriptingosx" "desktoppr") - expectedTeamID="JME5BW3F3R" - blockingProcesses=( NONE ) - ;; - malwarebytes) - name="Malwarebytes" - type="pkg" - downloadURL="https://downloads.malwarebytes.com/file/mb3-mac" - expectedTeamID="GVZRY6KDKR" - ;; - suspiciouspackage) - # credit: Mischa van der Bent (@mischavdbent) - name="Suspicious Package" - type="dmg" - downloadURL="https://mothersruin.com/software/downloads/SuspiciousPackage.dmg" - expectedTeamID="936EB786NH" - ;; - atom) - name="Atom" - type="zip" - archiveName="atom-mac.zip" - downloadURL=$(downloadURLFromGit atom atom ) - expectedTeamID="VEKTX9H2N7" - ;; - eraseinstall) - name="EraseInstall" - type="pkg" - downloadURL=https://bitbucket.org$(curl -fs https://bitbucket.org/prowarehouse-nl/erase-install/downloads/ | grep pkg | cut -d'"' -f2 | head -n 1) - expectedTeamID="R55HK5K86Y" - ;; - omnigraffle7) - name="OmniGraffle" - type="dmg" - downloadURL=$(curl -fs "https://update.omnigroup.com/appcast/com.omnigroup.OmniGraffle7" \ - | xpath '//rss/channel/item[1]/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="34YW5XSRB7" - ;; - omnifocus3) - name="OmniFocus" - type="dmg" - downloadURL=$(curl -fs https://update.omnigroup.com/appcast/com.omnigroup.OmniFocus3 \ - | xpath '//rss/channel/item/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="34YW5XSRB7" - ;; - vlc) - name="VLC" - type="dmg" - downloadURL=$(curl -fs http://update.videolan.org/vlc/sparkle/vlc-intel64.xml \ - | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) - expectedTeamID="75GAHG3SZQ" - ;; - textmate) - name="TextMate" - type="tbz" - downloadURL="https://api.textmate.org/downloads/release?os=10.12" - expectedTeamID="45TL96F76G" - ;; - depnotify) - name="DEPNotify" - type="zip" - downloadURL="https://files.nomad.menu/DEPNotify.zip" - expectedTeamID="VRPY9KHGX6" - targetDir="/Applications/Utilities" - ;; - tunnelbear) - name="TunnelBear" - type="zip" - downloadURL="https://s3.amazonaws.com/tunnelbear/downloads/mac/TunnelBear.zip" - expectedTeamID="P2PHZ9K5JJ" - ;; - sourcetree) - name="Sourcetree" - type="zip" - downloadURL=$(curl -fs https://product-downloads.atlassian.com/software/sourcetree/Appcast/SparkleAppcastAlpha.xml \ - | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null \ - | cut -d '"' -f 2 ) - expectedTeamID="UPXU4CQZ5P" - ;; - boxdrive) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Box" - type="pkg" - downloadURL="https://e3.boxcdn.net/box-installers/desktop/releases/mac/Box.pkg" - expectedTeamID="M683GB7CPW" - ;; - aviatrix) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Aviatrix VPN Client" - type="pkg" - downloadURL="https://s3-us-west-2.amazonaws.com/aviatrix-download/AviatrixVPNClient/AVPNC_mac.pkg" - expectedTeamID="32953Z7NBN" - ;; - zoom) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Zoom.us" - type="pkg" - downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg" - expectedTeamID="BJ4HAAB9B3" - blockingProcesses=( zoom.us ) - ;; - sonos) - # credit: Erik Stam (@erikstam) - name="Sonos" - type="dmg" - downloadURL="https://www.sonos.com/redir/controller_software_mac" - expectedTeamID="2G4LW83Q3E" - ;; - coderunner) - # credit: Erik Stam (@erikstam) - name="CodeRunner" - type="zip" - downloadURL="https://coderunnerapp.com/download" - expectedTeamID="R4GD98AJF9" - ;; - openvpnconnect) - # credit: Erik Stam (@erikstam) - name="OpenVPN" - type="pkgInDmg" - pkgName="OpenVPN_Connect_Installer_signed.pkg" - downloadURL="https://openvpn.net/downloads/openvpn-connect-v2-macos.dmg" - expectedTeamID="ACV7L3WCD8" - ;; - pacifist) - name="Pacifist" - type="dmg" - downloadURL="https://charlessoft.com/cgi-bin/pacifist_download.cgi?type=dmg" - expectedTeamID="HRLUCP7QP4" - ;; - 1password7) - name="1Password 7" - type="pkg" - downloadURL="https://app-updates.agilebits.com/download/OPM7" - expectedTeamID="2BUA8C4S2C" - ;; - webexmeetings) - # credit: Erik Stam (@erikstam) - name="Cisco Webex Meetings" - type="pkgInDmg" - downloadURL="https://akamaicdn.webex.com/client/webexapp.dmg" - expectedTeamID="DE8Y96K9QP" - ;; - webexteams) - # credit: Erik Stam (@erikstam) - name="Webex Teams" - type="dmg" - downloadURL="https://binaries.webex.com/WebexTeamsDesktop-MACOS-Gold/WebexTeams.dmg" - expectedTeamID="DE8Y96K9QP" - ;; - #citrixworkspace) - # credit: Erik Stam (@erikstam) - #name="Citrix Workspace" - #type="pkgInDmg" - #downloadURL="https://downloads.citrix.com/17596/CitrixWorkspaceApp.dmg?__gda__=1588183500_fc68033aef7d6d163d8b8309b964f1de" - #expectedTeamID="S272Y5R93J" - #;; - privileges) - # credit: Erik Stam (@erikstam) - name="Privileges" - type="zip" - downloadURL=$(downloadURLFromGit sap macOS-enterprise-privileges ) - expectedTeamID="7R5ZEU67FQ" - ;; - icons) - # credit: Mischa van der Bent (@mischavdbent) - name="Icons" - type="zip" - downloadURL=$(downloadURLFromGit sap macOS-icon-generator ) - expectedTeamID="7R5ZEU67FQ" - ;; - googledrivefilestream) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Google Drive File Stream" - type="pkgInDmg" - downloadURL="https://dl.google.com/drive-file-stream/GoogleDriveFileStream.dmg" - pkgName="GoogleDriveFileStream.pkg" - expectedTeamID="EQHXZ8M8AV" - ;; - plisteditpro) - name="PlistEdit Pro" - type="zip" - downloadURL="https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip" - expectedTeamID="8NQ43ND65V" - ;; - slack) - name="Slack" - type="dmg" - downloadURL="https://slack.com/ssb/download-osx" - expectedTeamID="BQR82RBBHL" - ;; - sublimetext) - # credit: Mischa van der Bent (@mischavdbent) - name="Sublime Text" - type="dmg" - downloadURL="https://download.sublimetext.com/latest/stable/osx" - expectedTeamID="Z6D26JE4Y4" - ;; - githubdesktop) - name="GitHub Desktop" - type="zip" - downloadURL="https://central.github.com/deployments/desktop/desktop/latest/darwin" - expectedTeamID="VEKTX9H2N7" - ;; - things) - name="Things" - type="zip" - downloadURL="https://culturedcode.com/things/download/" - expectedTeamID="JLMPQHK86H" - ;; - discord) - name="Discord" - type="dmg" - downloadURL="https://discordapp.com/api/download?platform=osx" - expectedTeamID="53Q6R32WPB" - ;; - grandperspective) - name="GrandPerspective" - type="dmg" - downloadURL="https://sourceforge.net/projects/grandperspectiv/files/latest/download" - expectedTeamID="3Z75QZGN66" - ;; - handbrake) - name="HandBrake" - type="dmg" - downloadURL=$(curl --silent --fail "https://api.github.com/repos/HandBrake/HandBrake/releases/latest" \ - | awk -F '"' "/browser_download_url/ && /dmg/ && ! /sig/ && ! /CLI/ { print \$4 }") - expectedTeamID="5X9DE89KYV" - ;; - netnewswire) - name="NetNewsWire" - type="zip" - downloadURL=$(curl -fs https://ranchero.com/downloads/netnewswire-release.xml \ - | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="M8L2WTLA8W" - ;; - resiliosynchome) - name="Resilio Sync" - type="dmg" - downloadURL="https://download-cdn.resilio.com/stable/osx/Resilio-Sync.dmg" - expectedTeamID="2953Z5SZSK" - ;; - cyberduck) - name="Cyberduck" - type="zip" - downloadURL=$(curl -fs https://version.cyberduck.io/changelog.rss | xpath '//rss/channel/item/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) - expectedTeamID="G69SCX94XU" - ;; - dropbox) - name="Dropbox" - type="dmg" - downloadURL="https://www.dropbox.com/download?plat=mac&full=1" - expectedTeamID="G7HH3F8CAK" - ;; - teamviewer) - name="TeamViewer" - type="pkgInDmg" - pkgName="Install TeamViewer.pkg" - downloadURL="https://download.teamviewer.com/download/TeamViewer.dmg" - expectedTeamID="H7UGFBUGV6" - ;; - iterm2) - name="iTerm" - type="zip" - downloadURL="https://iterm2.com/downloads/stable/latest" - expectedTeamID="H7V7XYVQ7D" - ;; - royaltsx) - name="Royal TSX" - type="dmg" - downloadURL=$(curl -fs https://royaltsx-v4.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="VXP8K9EDP6" - ;; - appcleaner) - # credit: Tadayuki Onishi (@kenchan0130) - name="AppCleaner" - 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) - expectedTeamID="X85ZX835W9" - ;; - karabinerelements) - # credit: Tadayuki Onishi (@kenchan0130) - name="Karabiner-Elements" - type="pkgInDmg" - downloadURL=$(downloadURLFromGit pqrs-org Karabiner-Elements) - expectedTeamID="G43BCU2T37" - ;; - postman) - # credit: Mischa van der Bent - name="Postman" - type="zip" - downloadURL="https://dl.pstmn.io/download/latest/osx" - expectedTeamID="H7H8Q7M5CK" - ;; - jamfpppcutility) - # credit: Mischa van der Bent - name="PPPC Utility" - type="zip" - downloadURL=$(downloadURLFromGit jamf PPPC-Utility) - expectedTeamID="483DWKW443" - ;; - jamfmigrator) - # credit: Mischa van der Bent - name="jamf-migrator" - type="zip" - downloadURL=$(downloadURLFromGit jamf JamfMigrator) - expectedTeamID="PS2F6S478M" - ;; - jamfreenroller) - # credit: Mischa van der Bent - name="ReEnroller" - type="zip" - downloadURL=$(downloadURLFromGit jamf ReEnroller) - expectedTeamID="PS2F6S478M" - ;; - adobereaderdc) - name="Adobe Acrobat Reader DC" - type="pkgInDmg" - downloadURL=$(adobecurrent=`curl -s 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"/AcroRdrDC_"$adobecurrent"_MUI.dmg) - expectedTeamID="JQ525L2MZD" - blockingProcesses=( "AdobeReader" ) - ;; - signal) - # credit: Søren Theilgaard - name="Signal" - type="dmg" - downloadURL=https://updates.signal.org/desktop/$(curl -fs https://updates.signal.org/desktop/latest-mac.yml | awk '/url/ && /dmg/ {print $3}') - expectedTeamID="U68MSDN6DR" - ;; - docker) - # credit: @securitygeneration - name="Docker" - type="dmg" - downloadURL="https://download.docker.com/mac/stable/Docker.dmg" - expectedTeamID="9BNSXJN65R" - ;; - brave) - # credit: @securitygeneration - name="Brave Browser" - type="dmg" - downloadURL="https://laptop-updates.brave.com/latest/osx" - expectedTeamID="9BNSXJN65R" - ;; - umbrellaroamingclient) - # credit: Tadayuki Onishi (@kenchan0130) - name="Umbrella Roaming Client" - type="pkgInZip" - downloadURL=https://disthost.umbrella.com/roaming/upgrade/mac/production/$( curl -fsL https://disthost.umbrella.com/roaming/upgrade/mac/production/manifest.json | awk -F '"' '/"downloadFilename"/ { print $4 }' ) - expectedTeamID="7P7HQ8H646" - ;; - powershell) - # credit: Tadayuki Onishi (@kenchan0130) - name="PowerShell" - type="pkg" - downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ - | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep -v lts ) - expectedTeamID="UBF8T346G9" - ;; - powershell-lts) - # credit: Tadayuki Onishi (@kenchan0130) - name="PowerShell" - type="pkg" - downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ - | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep lts) - expectedTeamID="UBF8T346G9" - ;; - wwdcformac) - name="WWDC" - type="zip" - downloadURL="https://cdn.wwdc.io/WWDC_latest.zip" - expectedTeamID="8C7439RJLG" - ;; - ringcentralmeetings) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Ring Central Meetings" - type="pkg" - downloadURL="http://dn.ringcentral.com/data/web/download/RCMeetings/1210/RCMeetingsClientSetup.pkg" - expectedTeamID="M932RC5J66" - blockingProcesses=( "RingCentral Meetings" ) - ;; - ringcentralapp) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Glip" - type="dmg" - downloadURL="https://downloads.ringcentral.com/glip/rc/GlipForMac" - expectedTeamID="M932RC5J66" - blockingProcesses=( "Glip" ) - ;; - sfsymbols) - name="SF Symbols" - type="pkgInDmg" - downloadURL="https://developer.apple.com/design/downloads/SF-Symbols.dmg" - expectedTeamID="Software Update" - ;; - swiftruntimeforcommandlinetools) - # Note: this installer will error on macOS versions later than 10.14.3 - name="SwiftRuntimeForCommandLineTools" - type="pkgInDmg" - downloadURL="https://updates.cdn-apple.com/2019/cert/061-41823-20191025-5efc5a59-d7dc-46d3-9096-396bb8cb4a73/SwiftRuntimeForCommandLineTools.dmg" - expectedTeamID="Software Update" - ;; +# label descriptions start here + autodmg) + # credit: Mischa van der Bent (@mischavdbent) + name="AutoDMG" + type="dmg" + downloadURL=$(downloadURLFromGit MagerValp AutoDMG) + expectedTeamID="5KQ3D3FG5H" + ;; +googlechrome) + name="Google Chrome" + type="dmg" + downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" + expectedTeamID="EQHXZ8M8AV" + ;; +googlechromepkg) + name="Google Chrome" + type="pkg" + downloadURL="https://dl.google.com/chrome/mac/stable/gcem/GoogleChrome.pkg" + expectedTeamID="EQHXZ8M8AV" + updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent" + updateToolArguments=( -runMode oneshot -userInitiated YES ) + updateToolRunAsCurrentUser=1 + ;; +googlejapaneseinput) + # credit: Tadayuki Onishi (@kenchan0130) + name="GoogleJapaneseInput" + type="pkgInDmg" + pkgName="GoogleJapaneseInput.pkg" + downloadURL="https://dl.google.com/japanese-ime/latest/GoogleJapaneseInput.dmg" + expectedTeamID="EQHXZ8M8AV" + ;; +santa) + # credit: Tadayuki Onishi (@kenchan0130) + name="Santa" + type="pkgInDmg" + downloadURL=$(downloadURLFromGit google santa) + expectedTeamID="EQHXZ8M8AV" + ;; +spotify) + name="Spotify" + type="dmg" + downloadURL="https://download.scdn.co/Spotify.dmg" + expectedTeamID="2FNC3A47ZF" + ;; +bbedit) + name="BBEdit" + type="dmg" + downloadURL=$(curl -s https://versioncheck.barebones.com/BBEdit.xml | grep dmg | sort | tail -n1 | cut -d">" -f2 | cut -d"<" -f1) + expectedTeamID="W52GZAXT98" + ;; +firefox) + name="Firefox" + type="dmg" + downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US" + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + ;; +firefoxpkg) + name="Firefox" + type="pkg" + downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US" + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + ;; +firefoxesrpkg) + name="Firefox" + type="pkg" + downloadURL="https://download.mozilla.org/?product=firefox-esr-pkg-latest-ssl&os=osx" + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + ;; +whatsapp) + name="WhatsApp" + type="dmg" + downloadURL="https://web.whatsapp.com/desktop/mac/files/WhatsApp.dmg" + expectedTeamID="57T9237FN3" + ;; +desktoppr) + name="desktoppr" + type="pkg" + downloadURL=$(downloadURLFromGit "scriptingosx" "desktoppr") + expectedTeamID="JME5BW3F3R" + blockingProcesses=( NONE ) + ;; +malwarebytes) + name="Malwarebytes" + type="pkg" + downloadURL="https://downloads.malwarebytes.com/file/mb3-mac" + expectedTeamID="GVZRY6KDKR" + ;; +suspiciouspackage) + # credit: Mischa van der Bent (@mischavdbent) + name="Suspicious Package" + type="dmg" + downloadURL="https://mothersruin.com/software/downloads/SuspiciousPackage.dmg" + expectedTeamID="936EB786NH" + ;; +atom) + name="Atom" + type="zip" + archiveName="atom-mac.zip" + downloadURL=$(downloadURLFromGit atom atom ) + expectedTeamID="VEKTX9H2N7" + ;; +eraseinstall) + name="EraseInstall" + type="pkg" + downloadURL=https://bitbucket.org$(curl -fs https://bitbucket.org/prowarehouse-nl/erase-install/downloads/ | grep pkg | cut -d'"' -f2 | head -n 1) + expectedTeamID="R55HK5K86Y" + ;; +omnigraffle7) + name="OmniGraffle" + type="dmg" + downloadURL=$(curl -fs "https://update.omnigroup.com/appcast/com.omnigroup.OmniGraffle7" \ + | xpath '//rss/channel/item[1]/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="34YW5XSRB7" + ;; +omnifocus3) + name="OmniFocus" + type="dmg" + downloadURL=$(curl -fs https://update.omnigroup.com/appcast/com.omnigroup.OmniFocus3 \ + | xpath '//rss/channel/item/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="34YW5XSRB7" + ;; +vlc) + name="VLC" + type="dmg" + downloadURL=$(curl -fs http://update.videolan.org/vlc/sparkle/vlc-intel64.xml \ + | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) + expectedTeamID="75GAHG3SZQ" + ;; +textmate) + name="TextMate" + type="tbz" + downloadURL="https://api.textmate.org/downloads/release?os=10.12" + expectedTeamID="45TL96F76G" + ;; +depnotify) + name="DEPNotify" + type="zip" + downloadURL="https://files.nomad.menu/DEPNotify.zip" + expectedTeamID="VRPY9KHGX6" + targetDir="/Applications/Utilities" + ;; +tunnelbear) + name="TunnelBear" + type="zip" + downloadURL="https://s3.amazonaws.com/tunnelbear/downloads/mac/TunnelBear.zip" + expectedTeamID="P2PHZ9K5JJ" + ;; +sourcetree) + name="Sourcetree" + type="zip" + downloadURL=$(curl -fs https://product-downloads.atlassian.com/software/sourcetree/Appcast/SparkleAppcastAlpha.xml \ + | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null \ + | cut -d '"' -f 2 ) + expectedTeamID="UPXU4CQZ5P" + ;; +boxdrive) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Box" + type="pkg" + downloadURL="https://e3.boxcdn.net/box-installers/desktop/releases/mac/Box.pkg" + expectedTeamID="M683GB7CPW" + ;; +aviatrix) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Aviatrix VPN Client" + type="pkg" + downloadURL="https://s3-us-west-2.amazonaws.com/aviatrix-download/AviatrixVPNClient/AVPNC_mac.pkg" + expectedTeamID="32953Z7NBN" + ;; +zoom) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Zoom.us" + type="pkg" + downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg" + expectedTeamID="BJ4HAAB9B3" + blockingProcesses=( zoom.us ) + ;; +sonos) + # credit: Erik Stam (@erikstam) + name="Sonos" + type="dmg" + downloadURL="https://www.sonos.com/redir/controller_software_mac" + expectedTeamID="2G4LW83Q3E" + ;; +coderunner) + # credit: Erik Stam (@erikstam) + name="CodeRunner" + type="zip" + downloadURL="https://coderunnerapp.com/download" + expectedTeamID="R4GD98AJF9" + ;; +openvpnconnect) + # credit: Erik Stam (@erikstam) + name="OpenVPN" + type="pkgInDmg" + pkgName="OpenVPN_Connect_Installer_signed.pkg" + downloadURL="https://openvpn.net/downloads/openvpn-connect-v2-macos.dmg" + expectedTeamID="ACV7L3WCD8" + ;; +pacifist) + name="Pacifist" + type="dmg" + downloadURL="https://charlessoft.com/cgi-bin/pacifist_download.cgi?type=dmg" + expectedTeamID="HRLUCP7QP4" + ;; +1password7) + name="1Password 7" + type="pkg" + downloadURL="https://app-updates.agilebits.com/download/OPM7" + expectedTeamID="2BUA8C4S2C" + ;; +webexmeetings) + # credit: Erik Stam (@erikstam) + name="Cisco Webex Meetings" + type="pkgInDmg" + downloadURL="https://akamaicdn.webex.com/client/webexapp.dmg" + expectedTeamID="DE8Y96K9QP" + ;; +webexteams) + # credit: Erik Stam (@erikstam) + name="Webex Teams" + type="dmg" + downloadURL="https://binaries.webex.com/WebexTeamsDesktop-MACOS-Gold/WebexTeams.dmg" + expectedTeamID="DE8Y96K9QP" + ;; +#citrixworkspace) + # credit: Erik Stam (@erikstam) + #name="Citrix Workspace" + #type="pkgInDmg" + #downloadURL="https://downloads.citrix.com/17596/CitrixWorkspaceApp.dmg?__gda__=1588183500_fc68033aef7d6d163d8b8309b964f1de" + #expectedTeamID="S272Y5R93J" + #;; +privileges) + # credit: Erik Stam (@erikstam) + name="Privileges" + type="zip" + downloadURL=$(downloadURLFromGit sap macOS-enterprise-privileges ) + expectedTeamID="7R5ZEU67FQ" + ;; +icons) + # credit: Mischa van der Bent (@mischavdbent) + name="Icons" + type="zip" + downloadURL=$(downloadURLFromGit sap macOS-icon-generator ) + expectedTeamID="7R5ZEU67FQ" + ;; +googledrivefilestream) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Google Drive File Stream" + type="pkgInDmg" + downloadURL="https://dl.google.com/drive-file-stream/GoogleDriveFileStream.dmg" + pkgName="GoogleDriveFileStream.pkg" + expectedTeamID="EQHXZ8M8AV" + ;; +plisteditpro) + name="PlistEdit Pro" + type="zip" + downloadURL="https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip" + expectedTeamID="8NQ43ND65V" + ;; +slack) + name="Slack" + type="dmg" + downloadURL="https://slack.com/ssb/download-osx" + expectedTeamID="BQR82RBBHL" + ;; +sublimetext) + # credit: Mischa van der Bent (@mischavdbent) + name="Sublime Text" + type="dmg" + downloadURL="https://download.sublimetext.com/latest/stable/osx" + expectedTeamID="Z6D26JE4Y4" + ;; +githubdesktop) + name="GitHub Desktop" + type="zip" + downloadURL="https://central.github.com/deployments/desktop/desktop/latest/darwin" + expectedTeamID="VEKTX9H2N7" + ;; +things) + name="Things" + type="zip" + downloadURL="https://culturedcode.com/things/download/" + expectedTeamID="JLMPQHK86H" + ;; +discord) + name="Discord" + type="dmg" + downloadURL="https://discordapp.com/api/download?platform=osx" + expectedTeamID="53Q6R32WPB" + ;; +grandperspective) + name="GrandPerspective" + type="dmg" + downloadURL="https://sourceforge.net/projects/grandperspectiv/files/latest/download" + expectedTeamID="3Z75QZGN66" + ;; +handbrake) + name="HandBrake" + type="dmg" + downloadURL=$(curl --silent --fail "https://api.github.com/repos/HandBrake/HandBrake/releases/latest" \ + | awk -F '"' "/browser_download_url/ && /dmg/ && ! /sig/ && ! /CLI/ { print \$4 }") + expectedTeamID="5X9DE89KYV" + ;; +netnewswire) + name="NetNewsWire" + type="zip" + downloadURL=$(curl -fs https://ranchero.com/downloads/netnewswire-release.xml \ + | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="M8L2WTLA8W" + ;; +resiliosynchome) + name="Resilio Sync" + type="dmg" + downloadURL="https://download-cdn.resilio.com/stable/osx/Resilio-Sync.dmg" + expectedTeamID="2953Z5SZSK" + ;; +cyberduck) + name="Cyberduck" + type="zip" + downloadURL=$(curl -fs https://version.cyberduck.io/changelog.rss | xpath '//rss/channel/item/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) + expectedTeamID="G69SCX94XU" + ;; +dropbox) + name="Dropbox" + type="dmg" + downloadURL="https://www.dropbox.com/download?plat=mac&full=1" + expectedTeamID="G7HH3F8CAK" + ;; +teamviewer) + name="TeamViewer" + type="pkgInDmg" + pkgName="Install TeamViewer.pkg" + downloadURL="https://download.teamviewer.com/download/TeamViewer.dmg" + expectedTeamID="H7UGFBUGV6" + ;; +iterm2) + name="iTerm" + type="zip" + downloadURL="https://iterm2.com/downloads/stable/latest" + expectedTeamID="H7V7XYVQ7D" + ;; +royaltsx) + name="Royal TSX" + type="dmg" + downloadURL=$(curl -fs https://royaltsx-v4.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="VXP8K9EDP6" + ;; +appcleaner) + # credit: Tadayuki Onishi (@kenchan0130) + name="AppCleaner" + 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) + expectedTeamID="X85ZX835W9" + ;; +karabinerelements) + # credit: Tadayuki Onishi (@kenchan0130) + name="Karabiner-Elements" + type="pkgInDmg" + downloadURL=$(downloadURLFromGit pqrs-org Karabiner-Elements) + expectedTeamID="G43BCU2T37" + ;; +postman) + # credit: Mischa van der Bent + name="Postman" + type="zip" + downloadURL="https://dl.pstmn.io/download/latest/osx" + expectedTeamID="H7H8Q7M5CK" + ;; +jamfpppcutility) + # credit: Mischa van der Bent + name="PPPC Utility" + type="zip" + downloadURL=$(downloadURLFromGit jamf PPPC-Utility) + expectedTeamID="483DWKW443" + ;; +jamfmigrator) + # credit: Mischa van der Bent + name="jamf-migrator" + type="zip" + downloadURL=$(downloadURLFromGit jamf JamfMigrator) + expectedTeamID="PS2F6S478M" + ;; +jamfreenroller) + # credit: Mischa van der Bent + name="ReEnroller" + type="zip" + downloadURL=$(downloadURLFromGit jamf ReEnroller) + expectedTeamID="PS2F6S478M" + ;; +adobereaderdc) + name="Adobe Acrobat Reader DC" + type="pkgInDmg" + downloadURL=$(adobecurrent=`curl -s 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"/AcroRdrDC_"$adobecurrent"_MUI.dmg) + expectedTeamID="JQ525L2MZD" + blockingProcesses=( "AdobeReader" ) + ;; +signal) + # credit: Søren Theilgaard + name="Signal" + type="dmg" + downloadURL=https://updates.signal.org/desktop/$(curl -fs https://updates.signal.org/desktop/latest-mac.yml | awk '/url/ && /dmg/ {print $3}') + expectedTeamID="U68MSDN6DR" + ;; +docker) + # credit: @securitygeneration + name="Docker" + type="dmg" + downloadURL="https://download.docker.com/mac/stable/Docker.dmg" + expectedTeamID="9BNSXJN65R" + ;; +brave) + # credit: @securitygeneration + name="Brave Browser" + type="dmg" + downloadURL="https://laptop-updates.brave.com/latest/osx" + expectedTeamID="9BNSXJN65R" + ;; +umbrellaroamingclient) + # credit: Tadayuki Onishi (@kenchan0130) + name="Umbrella Roaming Client" + type="pkgInZip" + downloadURL=https://disthost.umbrella.com/roaming/upgrade/mac/production/$( curl -fsL https://disthost.umbrella.com/roaming/upgrade/mac/production/manifest.json | awk -F '"' '/"downloadFilename"/ { print $4 }' ) + expectedTeamID="7P7HQ8H646" + ;; +powershell) + # credit: Tadayuki Onishi (@kenchan0130) + name="PowerShell" + type="pkg" + downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ + | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep -v lts ) + expectedTeamID="UBF8T346G9" + ;; +powershell-lts) + # credit: Tadayuki Onishi (@kenchan0130) + name="PowerShell" + type="pkg" + downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ + | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep lts) + expectedTeamID="UBF8T346G9" + ;; +wwdcformac) + name="WWDC" + type="zip" + downloadURL="https://cdn.wwdc.io/WWDC_latest.zip" + expectedTeamID="8C7439RJLG" + ;; +ringcentralmeetings) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Ring Central Meetings" + type="pkg" + downloadURL="http://dn.ringcentral.com/data/web/download/RCMeetings/1210/RCMeetingsClientSetup.pkg" + expectedTeamID="M932RC5J66" + blockingProcesses=( "RingCentral Meetings" ) + ;; +ringcentralapp) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Glip" + type="dmg" + downloadURL="https://downloads.ringcentral.com/glip/rc/GlipForMac" + expectedTeamID="M932RC5J66" + blockingProcesses=( "Glip" ) + ;; +sfsymbols) + name="SF Symbols" + type="pkgInDmg" + downloadURL="https://developer.apple.com/design/downloads/SF-Symbols.dmg" + expectedTeamID="Software Update" + ;; +swiftruntimeforcommandlinetools) + # Note: this installer will error on macOS versions later than 10.14.3 + name="SwiftRuntimeForCommandLineTools" + type="pkgInDmg" + downloadURL="https://updates.cdn-apple.com/2019/cert/061-41823-20191025-5efc5a59-d7dc-46d3-9096-396bb8cb4a73/SwiftRuntimeForCommandLineTools.dmg" + expectedTeamID="Software Update" + ;; # Note: Packages is signed but _not_ notarized, so spctl will reject it @@ -692,189 +691,189 @@ case $label in # expectedTeamID="NL5M9E394P" # ;; - # msupdate codes from: - # https://docs.microsoft.com/en-us/deployoffice/mac/update-office-for-mac-using-msupdate +# msupdate codes from: +# https://docs.microsoft.com/en-us/deployoffice/mac/update-office-for-mac-using-msupdate - # download link IDs from: https://macadmin.software +# download link IDs from: https://macadmin.software - microsoftoffice365) - name="MicrosoftOffice365" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=525133" - expectedTeamID="UBF8T346G9" - # using MS PowerPoint as the 'stand-in' for the entire suite - appName="Microsoft PowerPoint.app" - blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" ) - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install ) - ;; - microsoftofficebusinesspro) - name="MicrosoftOfficeBusinessPro" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=2009112" - expectedTeamID="UBF8T346G9" - # using MS PowerPoint as the 'stand-in' for the entire suite - appName="Microsoft PowerPoint.app" - blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" "Teams") - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install ) - ;; - microsoftedgeconsumerstable) - name="Microsoft Edge" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=2069148" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps EDGE01 ) - ;; - microsoftcompanyportal) - name="Company Portal" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=869655" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps IMCP01 ) - ;; - microsoftskypeforbusiness) - name="Skype for Business" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=832978" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps MSFB16 ) - ;; - microsoftremotedesktop) - name="Microsoft Remote Desktop" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=868963" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps MSRD10 ) - ;; - microsoftteams) - name="Microsoft Teams" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=869428" - expectedTeamID="UBF8T346G9" - blockingProcesses=( Teams "Microsoft Teams Helper" ) - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps TEAM01 ) - ;; - microsoftautoupdate) - name="Microsoft AutoUpdate" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=830196" - expectedTeamID="UBF8T346G9" - # commented the updatetool for MSAutoupdate, because when Autoupdate is really - # old or broken, you want to force a new install - #updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - #updateToolArguments=( --install --apps MSau04 ) - ;; - microsoftedgeenterprisestable) - name="Microsoft Edge" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=2093438" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps EDGE01 ) - ;; - microsoftword) - name="Microsoft Word" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=525134" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps MSWD2019 ) - ;; - microsoftexcel) - name="Microsoft Excel" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=525135" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps XCEL2019 ) - ;; - microsoftpowerpoint) - name="Microsoft PowerPoint" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=525136" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps PPT32019 ) - ;; - microsoftoutlook) - name="Microsoft Outlook" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=525137" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps OPIM2019 ) - ;; - microsoftonenote) - name="Microsoft OneNote" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=820886" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps ONMC2019 ) - ;; - microsoftonedrive) - name="OneDrive" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=823060" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps ONDR18 ) - ;; - microsoftsharepointplugin) - name="MicrosoftSharePointPlugin" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=800050" - expectedTeamID="UBF8T346G9" - # TODO: determine blockingProcesses for SharePointPlugin - ;; - visualstudiocode) - name="Visual Studio Code" - type="zip" - downloadURL="https://go.microsoft.com/fwlink/?LinkID=620882" - expectedTeamID="UBF8T346G9" - appName="Visual Studio Code.app" - blockingProcesses=( Electron ) - ;; - microsoftdefenderatp) - name="Microsoft Defender ATP" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=2097502" - expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps WDAV00 ) - ;; +microsoftoffice365) + name="MicrosoftOffice365" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=525133" + expectedTeamID="UBF8T346G9" + # using MS PowerPoint as the 'stand-in' for the entire suite + appName="Microsoft PowerPoint.app" + blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" ) + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install ) + ;; +microsoftofficebusinesspro) + name="MicrosoftOfficeBusinessPro" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=2009112" + expectedTeamID="UBF8T346G9" + # using MS PowerPoint as the 'stand-in' for the entire suite + appName="Microsoft PowerPoint.app" + blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" "Teams") + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install ) + ;; +microsoftedgeconsumerstable) + name="Microsoft Edge" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=2069148" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps EDGE01 ) + ;; +microsoftcompanyportal) + name="Company Portal" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=869655" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps IMCP01 ) + ;; +microsoftskypeforbusiness) + name="Skype for Business" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=832978" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps MSFB16 ) + ;; +microsoftremotedesktop) + name="Microsoft Remote Desktop" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=868963" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps MSRD10 ) + ;; +microsoftteams) + name="Microsoft Teams" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=869428" + expectedTeamID="UBF8T346G9" + blockingProcesses=( Teams "Microsoft Teams Helper" ) + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps TEAM01 ) + ;; +microsoftautoupdate) + name="Microsoft AutoUpdate" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=830196" + expectedTeamID="UBF8T346G9" + # commented the updatetool for MSAutoupdate, because when Autoupdate is really + # old or broken, you want to force a new install + #updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + #updateToolArguments=( --install --apps MSau04 ) + ;; +microsoftedgeenterprisestable) + name="Microsoft Edge" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=2093438" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps EDGE01 ) + ;; +microsoftword) + name="Microsoft Word" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=525134" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps MSWD2019 ) + ;; +microsoftexcel) + name="Microsoft Excel" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=525135" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps XCEL2019 ) + ;; +microsoftpowerpoint) + name="Microsoft PowerPoint" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=525136" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps PPT32019 ) + ;; +microsoftoutlook) + name="Microsoft Outlook" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=525137" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps OPIM2019 ) + ;; +microsoftonenote) + name="Microsoft OneNote" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=820886" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps ONMC2019 ) + ;; +microsoftonedrive) + name="OneDrive" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=823060" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps ONDR18 ) + ;; +microsoftsharepointplugin) + name="MicrosoftSharePointPlugin" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=800050" + expectedTeamID="UBF8T346G9" + # TODO: determine blockingProcesses for SharePointPlugin + ;; +visualstudiocode) + name="Visual Studio Code" + type="zip" + downloadURL="https://go.microsoft.com/fwlink/?LinkID=620882" + expectedTeamID="UBF8T346G9" + appName="Visual Studio Code.app" + blockingProcesses=( Electron ) + ;; +microsoftdefenderatp) + name="Microsoft Defender ATP" + type="pkg" + downloadURL="https://go.microsoft.com/fwlink/?linkid=2097502" + expectedTeamID="UBF8T346G9" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateToolArguments=( --install --apps WDAV00 ) + ;; - # these descriptions exist for testing and are intentionally broken - brokendownloadurl) - name="Google Chrome" - type="dmg" - downloadURL="https://broken.com/broken.dmg" - expectedTeamID="EQHXZ8M8AV" - ;; - brokenappname) - name="brokenapp" - type="dmg" - downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" - expectedTeamID="EQHXZ8M8AV" - ;; - brokenteamid) - name="Google Chrome" - type="dmg" - downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" - expectedTeamID="broken" - ;; - *) - # unknown label - printlog "unknown label $label" - exit 1 - ;; +# these descriptions exist for testing and are intentionally broken +brokendownloadurl) + name="Google Chrome" + type="dmg" + downloadURL="https://broken.com/broken.dmg" + expectedTeamID="EQHXZ8M8AV" + ;; +brokenappname) + name="brokenapp" + type="dmg" + downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" + expectedTeamID="EQHXZ8M8AV" + ;; +brokenteamid) + name="Google Chrome" + type="dmg" + downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" + expectedTeamID="broken" + ;; +*) + # unknown label + printlog "unknown label $label" + exit 1 + ;; esac # functions From 9e4b67efed2fe4d15829e959bdf1d46602b1b934 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 12:57:57 +0200 Subject: [PATCH 10/29] Revert "Merge branch 'dev' of https://github.com/scriptingosx/Installomator into dev" This reverts commit 44a4c05df6ec5628be9873434c45545dd4da1069, reversing changes made to 7e40dc1e36e3ccdc7c8038ef5d8351d6892498e1. --- Installomator.sh | 986 +++++++++++++++++++++++------------------------ 1 file changed, 479 insertions(+), 507 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 9a4c8f0..7c99373 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -209,513 +209,485 @@ longversion) exit 0 ;; - # label descriptions start here - autodmg) - # credit: Mischa van der Bent (@mischavdbent) - name="AutoDMG" - type="dmg" - downloadURL=$(downloadURLFromGit MagerValp AutoDMG) - expectedTeamID="5KQ3D3FG5H" - ;; - googlechrome|googlechromepkg) - name="Google Chrome" - type="pkg" - # - # Note: this url acknowledges that you accept the terms of service - # 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" - expectedTeamID="EQHXZ8M8AV" - updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent" - updateToolArguments=( -runMode oneshot -userInitiated YES ) - updateToolRunAsCurrentUser=1 - ;; - googlejapaneseinput) - # credit: Tadayuki Onishi (@kenchan0130) - name="GoogleJapaneseInput" - type="pkgInDmg" - pkgName="GoogleJapaneseInput.pkg" - downloadURL="https://dl.google.com/japanese-ime/latest/GoogleJapaneseInput.dmg" - expectedTeamID="EQHXZ8M8AV" - ;; - santa) - # credit: Tadayuki Onishi (@kenchan0130) - name="Santa" - type="pkgInDmg" - downloadURL=$(downloadURLFromGit google santa) - expectedTeamID="EQHXZ8M8AV" - ;; - spotify) - name="Spotify" - type="dmg" - downloadURL="https://download.scdn.co/Spotify.dmg" - expectedTeamID="2FNC3A47ZF" - ;; - bbedit) - name="BBEdit" - type="dmg" - downloadURL=$(curl -s https://versioncheck.barebones.com/BBEdit.xml | grep dmg | sort | tail -n1 | cut -d">" -f2 | cut -d"<" -f1) - expectedTeamID="W52GZAXT98" - ;; - firefox) - name="Firefox" - type="dmg" - downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US" - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - ;; - firefoxpkg) - name="Firefox" - type="pkg" - downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US" - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - ;; - firefoxesrpkg) - name="Firefox" - type="pkg" - downloadURL="https://download.mozilla.org/?product=firefox-esr-pkg-latest-ssl&os=osx" - expectedTeamID="43AQ936H96" - blockingProcesses=( firefox ) - ;; - whatsapp) - name="WhatsApp" - type="dmg" - downloadURL="https://web.whatsapp.com/desktop/mac/files/WhatsApp.dmg" - expectedTeamID="57T9237FN3" - ;; - desktoppr) - name="desktoppr" - type="pkg" - downloadURL=$(downloadURLFromGit "scriptingosx" "desktoppr") - expectedTeamID="JME5BW3F3R" - blockingProcesses=( NONE ) - ;; - malwarebytes) - name="Malwarebytes" - type="pkg" - downloadURL="https://downloads.malwarebytes.com/file/mb3-mac" - expectedTeamID="GVZRY6KDKR" - ;; - suspiciouspackage) - # credit: Mischa van der Bent (@mischavdbent) - name="Suspicious Package" - type="dmg" - downloadURL="https://mothersruin.com/software/downloads/SuspiciousPackage.dmg" - expectedTeamID="936EB786NH" - ;; - atom) - name="Atom" - type="zip" - archiveName="atom-mac.zip" - downloadURL=$(downloadURLFromGit atom atom ) - expectedTeamID="VEKTX9H2N7" - ;; - eraseinstall) - name="EraseInstall" - type="pkg" - downloadURL=https://bitbucket.org$(curl -fs https://bitbucket.org/prowarehouse-nl/erase-install/downloads/ | grep pkg | cut -d'"' -f2 | head -n 1) - expectedTeamID="R55HK5K86Y" - ;; - omnigraffle7) - name="OmniGraffle" - type="dmg" - downloadURL=$(curl -fs "https://update.omnigroup.com/appcast/com.omnigroup.OmniGraffle7" \ - | xpath '//rss/channel/item[1]/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="34YW5XSRB7" - ;; - omnifocus3) - name="OmniFocus" - type="dmg" - downloadURL=$(curl -fs https://update.omnigroup.com/appcast/com.omnigroup.OmniFocus3 \ - | xpath '//rss/channel/item/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="34YW5XSRB7" - ;; - vlc) - name="VLC" - type="dmg" - downloadURL=$(curl -fs http://update.videolan.org/vlc/sparkle/vlc-intel64.xml \ - | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) - expectedTeamID="75GAHG3SZQ" - ;; - textmate) - name="TextMate" - type="tbz" - downloadURL="https://api.textmate.org/downloads/release?os=10.12" - expectedTeamID="45TL96F76G" - ;; - depnotify) - name="DEPNotify" - type="zip" - downloadURL="https://files.nomad.menu/DEPNotify.zip" - expectedTeamID="VRPY9KHGX6" - targetDir="/Applications/Utilities" - ;; - tunnelbear) - name="TunnelBear" - type="zip" - downloadURL="https://s3.amazonaws.com/tunnelbear/downloads/mac/TunnelBear.zip" - expectedTeamID="P2PHZ9K5JJ" - ;; - sourcetree) - name="Sourcetree" - type="zip" - downloadURL=$(curl -fs https://product-downloads.atlassian.com/software/sourcetree/Appcast/SparkleAppcastAlpha.xml \ - | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null \ - | cut -d '"' -f 2 ) - expectedTeamID="UPXU4CQZ5P" - ;; - boxdrive) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Box" - type="pkg" - downloadURL="https://e3.boxcdn.net/box-installers/desktop/releases/mac/Box.pkg" - expectedTeamID="M683GB7CPW" - ;; - aviatrix) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Aviatrix VPN Client" - type="pkg" - downloadURL="https://s3-us-west-2.amazonaws.com/aviatrix-download/AviatrixVPNClient/AVPNC_mac.pkg" - expectedTeamID="32953Z7NBN" - ;; - zoom) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Zoom.us" - type="pkg" - downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg" - expectedTeamID="BJ4HAAB9B3" - blockingProcesses=( zoom.us ) - ;; - # for compatibility 'sonos' will download and install the S1 Controller - # use 'sonoss2' for the new controller - sonos|sonoss1) - # credit: Erik Stam (@erikstam) - name="Sonos S1 Controller" - type="dmg" - downloadURL="https://www.sonos.com/redir/controller_software_mac" - expectedTeamID="2G4LW83Q3E" - ;; - sonoss2) - name="Sonos" - type="dmg" - downloadURL="https://www.sonos.com/redir/controller_software_mac2" - expectedTeamID="2G4LW83Q3E" - ;; - coderunner) - # credit: Erik Stam (@erikstam) - name="CodeRunner" - type="zip" - downloadURL="https://coderunnerapp.com/download" - expectedTeamID="R4GD98AJF9" - ;; - openvpnconnect) - # credit: Erik Stam (@erikstam) - name="OpenVPN" - type="pkgInDmg" - pkgName="OpenVPN_Connect_Installer_signed.pkg" - downloadURL="https://openvpn.net/downloads/openvpn-connect-v2-macos.dmg" - expectedTeamID="ACV7L3WCD8" - ;; - pacifist) - name="Pacifist" - type="dmg" - downloadURL="https://charlessoft.com/cgi-bin/pacifist_download.cgi?type=dmg" - expectedTeamID="HRLUCP7QP4" - ;; - 1password7) - name="1Password 7" - type="pkg" - downloadURL="https://app-updates.agilebits.com/download/OPM7" - expectedTeamID="2BUA8C4S2C" - ;; - webexmeetings) - # credit: Erik Stam (@erikstam) - name="Cisco Webex Meetings" - type="pkgInDmg" - downloadURL="https://akamaicdn.webex.com/client/webexapp.dmg" - expectedTeamID="DE8Y96K9QP" - ;; - webexteams) - # credit: Erik Stam (@erikstam) - name="Webex Teams" - type="dmg" - downloadURL="https://binaries.webex.com/WebexTeamsDesktop-MACOS-Gold/WebexTeams.dmg" - expectedTeamID="DE8Y96K9QP" - ;; - #citrixworkspace) - # credit: Erik Stam (@erikstam) - #name="Citrix Workspace" - #type="pkgInDmg" - #downloadURL="https://downloads.citrix.com/17596/CitrixWorkspaceApp.dmg?__gda__=1588183500_fc68033aef7d6d163d8b8309b964f1de" - #expectedTeamID="S272Y5R93J" - #;; - privileges) - # credit: Erik Stam (@erikstam) - name="Privileges" - type="zip" - downloadURL=$(downloadURLFromGit sap macOS-enterprise-privileges ) - expectedTeamID="7R5ZEU67FQ" - ;; - icons) - # credit: Mischa van der Bent (@mischavdbent) - name="Icons" - type="zip" - downloadURL=$(downloadURLFromGit sap macOS-icon-generator ) - expectedTeamID="7R5ZEU67FQ" - ;; - googledrivefilestream) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Google Drive File Stream" - type="pkgInDmg" - downloadURL="https://dl.google.com/drive-file-stream/GoogleDriveFileStream.dmg" - pkgName="GoogleDriveFileStream.pkg" - expectedTeamID="EQHXZ8M8AV" - ;; - plisteditpro) - name="PlistEdit Pro" - type="zip" - downloadURL="https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip" - expectedTeamID="8NQ43ND65V" - ;; - slack) - name="Slack" - type="dmg" - downloadURL="https://slack.com/ssb/download-osx" - expectedTeamID="BQR82RBBHL" - ;; - sublimetext) - # credit: Mischa van der Bent (@mischavdbent) - name="Sublime Text" - type="dmg" - downloadURL="https://download.sublimetext.com/latest/stable/osx" - expectedTeamID="Z6D26JE4Y4" - ;; - githubdesktop) - name="GitHub Desktop" - type="zip" - downloadURL="https://central.github.com/deployments/desktop/desktop/latest/darwin" - expectedTeamID="VEKTX9H2N7" - ;; - things) - name="Things3" - type="zip" - downloadURL="https://culturedcode.com/things/download/" - expectedTeamID="JLMPQHK86H" - ;; - discord) - name="Discord" - type="dmg" - downloadURL="https://discordapp.com/api/download?platform=osx" - expectedTeamID="53Q6R32WPB" - ;; - grandperspective) - name="GrandPerspective" - type="dmg" - downloadURL="https://sourceforge.net/projects/grandperspectiv/files/latest/download" - expectedTeamID="3Z75QZGN66" - ;; - handbrake) - name="HandBrake" - type="dmg" - downloadURL=$(curl --silent --fail "https://api.github.com/repos/HandBrake/HandBrake/releases/latest" \ - | awk -F '"' "/browser_download_url/ && /dmg/ && ! /sig/ && ! /CLI/ { print \$4 }") - expectedTeamID="5X9DE89KYV" - ;; - netnewswire) - name="NetNewsWire" - type="zip" - downloadURL=$(curl -fs https://ranchero.com/downloads/netnewswire-release.xml \ - | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="M8L2WTLA8W" - ;; - resiliosynchome) - name="Resilio Sync" - type="dmg" - downloadURL="https://download-cdn.resilio.com/stable/osx/Resilio-Sync.dmg" - expectedTeamID="2953Z5SZSK" - ;; - cyberduck) - name="Cyberduck" - type="zip" - downloadURL=$(curl -fs https://version.cyberduck.io/changelog.rss | xpath '//rss/channel/item/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) - expectedTeamID="G69SCX94XU" - ;; - dropbox) - name="Dropbox" - type="dmg" - downloadURL="https://www.dropbox.com/download?plat=mac&full=1" - expectedTeamID="G7HH3F8CAK" - ;; - teamviewer) - name="TeamViewer" - type="pkgInDmg" - pkgName="Install TeamViewer.pkg" - downloadURL="https://download.teamviewer.com/download/TeamViewer.dmg" - expectedTeamID="H7UGFBUGV6" - ;; - iterm2) - name="iTerm" - type="zip" - downloadURL="https://iterm2.com/downloads/stable/latest" - expectedTeamID="H7V7XYVQ7D" - ;; - royaltsx) - name="Royal TSX" - type="dmg" - downloadURL=$(curl -fs https://royaltsx-v4.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) - expectedTeamID="VXP8K9EDP6" - ;; - appcleaner) - # credit: Tadayuki Onishi (@kenchan0130) - name="AppCleaner" - 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) - expectedTeamID="X85ZX835W9" - ;; - karabinerelements) - # credit: Tadayuki Onishi (@kenchan0130) - name="Karabiner-Elements" - type="pkgInDmg" - downloadURL=$(downloadURLFromGit pqrs-org Karabiner-Elements) - expectedTeamID="G43BCU2T37" - ;; - postman) - # credit: Mischa van der Bent - name="Postman" - type="zip" - downloadURL="https://dl.pstmn.io/download/latest/osx" - expectedTeamID="H7H8Q7M5CK" - ;; - jamfpppcutility) - # credit: Mischa van der Bent - name="PPPC Utility" - type="zip" - downloadURL=$(downloadURLFromGit jamf PPPC-Utility) - expectedTeamID="483DWKW443" - ;; - jamfmigrator) - # credit: Mischa van der Bent - name="jamf-migrator" - type="zip" - downloadURL=$(downloadURLFromGit jamf JamfMigrator) - expectedTeamID="PS2F6S478M" - ;; - jamfreenroller) - # credit: Mischa van der Bent - name="ReEnroller" - type="zip" - downloadURL=$(downloadURLFromGit jamf ReEnroller) - expectedTeamID="PS2F6S478M" - ;; - adobereaderdc|adobereaderdc-install) - name="Adobe Acrobat Reader DC" - type="pkgInDmg" - downloadURL=$(curl -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) - expectedTeamID="JQ525L2MZD" - blockingProcesses=( "AdobeReader" ) - ;; - adobereaderdc-update) - name="Adobe Acrobat Reader DC" - type="pkgInDmg" - downloadURL=$(adobecurrent=`curl -s 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) - expectedTeamID="JQ525L2MZD" - blockingProcesses=( "AdobeReader" ) - ;; - signal) - # credit: Søren Theilgaard - name="Signal" - type="dmg" - downloadURL=https://updates.signal.org/desktop/$(curl -fs https://updates.signal.org/desktop/latest-mac.yml | awk '/url/ && /dmg/ {print $3}') - expectedTeamID="U68MSDN6DR" - ;; - docker) - # credit: @securitygeneration - name="Docker" - type="dmg" - downloadURL="https://download.docker.com/mac/stable/Docker.dmg" - expectedTeamID="9BNSXJN65R" - ;; - brave) - # credit: @securitygeneration - name="Brave Browser" - type="dmg" - downloadURL="https://laptop-updates.brave.com/latest/osx" - expectedTeamID="9BNSXJN65R" - ;; - torbrowser) - # credit: Søren Theilgaard (@theilgaard) - name="Tor Browser" - type="dmg" - downloadURL=https://www.torproject.org$(curl -fs https://www.torproject.org/download/ | grep "downloadLink" | grep dmg | cut -d '"' -f 4) - appNewVersion=$(curl -fs https://www.torproject.org/download/ | grep "downloadLink" | grep dmg | cut -d '"' -f 4 | cut -d / -f 4) - expectedTeamID="MADPSAYN6T" - ;; - umbrellaroamingclient) - # credit: Tadayuki Onishi (@kenchan0130) - name="Umbrella Roaming Client" - type="pkgInZip" - downloadURL=https://disthost.umbrella.com/roaming/upgrade/mac/production/$( curl -fsL https://disthost.umbrella.com/roaming/upgrade/mac/production/manifest.json | awk -F '"' '/"downloadFilename"/ { print $4 }' ) - expectedTeamID="7P7HQ8H646" - ;; - powershell) - # credit: Tadayuki Onishi (@kenchan0130) - name="PowerShell" - type="pkg" - downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ - | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep -v lts ) - expectedTeamID="UBF8T346G9" - ;; - powershell-lts) - # credit: Tadayuki Onishi (@kenchan0130) - name="PowerShell" - type="pkg" - downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ - | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep lts) - expectedTeamID="UBF8T346G9" - ;; - wwdcformac) - name="WWDC" - type="zip" - downloadURL="https://cdn.wwdc.io/WWDC_latest.zip" - expectedTeamID="8C7439RJLG" - ;; - ringcentralmeetings) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Ring Central Meetings" - type="pkg" - downloadURL="http://dn.ringcentral.com/data/web/download/RCMeetings/1210/RCMeetingsClientSetup.pkg" - expectedTeamID="M932RC5J66" - blockingProcesses=( "RingCentral Meetings" ) - ;; - ringcentralapp) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Glip" - type="dmg" - downloadURL="https://downloads.ringcentral.com/glip/rc/GlipForMac" - expectedTeamID="M932RC5J66" - blockingProcesses=( "Glip" ) - ;; - sfsymbols) - name="SF Symbols" - type="pkgInDmg" - downloadURL="https://developer.apple.com/design/downloads/SF-Symbols.dmg" - expectedTeamID="Software Update" - ;; - swiftruntimeforcommandlinetools) - # Note: this installer will error on macOS versions later than 10.14.3 - name="SwiftRuntimeForCommandLineTools" - type="pkgInDmg" - downloadURL="https://updates.cdn-apple.com/2019/cert/061-41823-20191025-5efc5a59-d7dc-46d3-9096-396bb8cb4a73/SwiftRuntimeForCommandLineTools.dmg" - expectedTeamID="Software Update" - ;; - vmwarefusion) - # credit: Erik Stam (@erikstam) - name="VMware Fusion" - type="dmg" - downloadURL="https://www.vmware.com/go/getfusion" - expectedTeamID="EG7KH642X6" - ;; +# label descriptions start here + autodmg) + # credit: Mischa van der Bent (@mischavdbent) + name="AutoDMG" + type="dmg" + downloadURL=$(downloadURLFromGit MagerValp AutoDMG) + expectedTeamID="5KQ3D3FG5H" + ;; +googlechrome) + name="Google Chrome" + type="dmg" + downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" + expectedTeamID="EQHXZ8M8AV" + ;; +googlechromepkg) + name="Google Chrome" + type="pkg" + downloadURL="https://dl.google.com/chrome/mac/stable/gcem/GoogleChrome.pkg" + expectedTeamID="EQHXZ8M8AV" + updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent" + updateToolArguments=( -runMode oneshot -userInitiated YES ) + updateToolRunAsCurrentUser=1 + ;; +googlejapaneseinput) + # credit: Tadayuki Onishi (@kenchan0130) + name="GoogleJapaneseInput" + type="pkgInDmg" + pkgName="GoogleJapaneseInput.pkg" + downloadURL="https://dl.google.com/japanese-ime/latest/GoogleJapaneseInput.dmg" + expectedTeamID="EQHXZ8M8AV" + ;; +santa) + # credit: Tadayuki Onishi (@kenchan0130) + name="Santa" + type="pkgInDmg" + downloadURL=$(downloadURLFromGit google santa) + expectedTeamID="EQHXZ8M8AV" + ;; +spotify) + name="Spotify" + type="dmg" + downloadURL="https://download.scdn.co/Spotify.dmg" + expectedTeamID="2FNC3A47ZF" + ;; +bbedit) + name="BBEdit" + type="dmg" + downloadURL=$(curl -s https://versioncheck.barebones.com/BBEdit.xml | grep dmg | sort | tail -n1 | cut -d">" -f2 | cut -d"<" -f1) + expectedTeamID="W52GZAXT98" + ;; +firefox) + name="Firefox" + type="dmg" + downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US" + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + ;; +firefoxpkg) + name="Firefox" + type="pkg" + downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US" + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + ;; +firefoxesrpkg) + name="Firefox" + type="pkg" + downloadURL="https://download.mozilla.org/?product=firefox-esr-pkg-latest-ssl&os=osx" + expectedTeamID="43AQ936H96" + blockingProcesses=( firefox ) + ;; +whatsapp) + name="WhatsApp" + type="dmg" + downloadURL="https://web.whatsapp.com/desktop/mac/files/WhatsApp.dmg" + expectedTeamID="57T9237FN3" + ;; +desktoppr) + name="desktoppr" + type="pkg" + downloadURL=$(downloadURLFromGit "scriptingosx" "desktoppr") + expectedTeamID="JME5BW3F3R" + blockingProcesses=( NONE ) + ;; +malwarebytes) + name="Malwarebytes" + type="pkg" + downloadURL="https://downloads.malwarebytes.com/file/mb3-mac" + expectedTeamID="GVZRY6KDKR" + ;; +suspiciouspackage) + # credit: Mischa van der Bent (@mischavdbent) + name="Suspicious Package" + type="dmg" + downloadURL="https://mothersruin.com/software/downloads/SuspiciousPackage.dmg" + expectedTeamID="936EB786NH" + ;; +atom) + name="Atom" + type="zip" + archiveName="atom-mac.zip" + downloadURL=$(downloadURLFromGit atom atom ) + expectedTeamID="VEKTX9H2N7" + ;; +eraseinstall) + name="EraseInstall" + type="pkg" + downloadURL=https://bitbucket.org$(curl -fs https://bitbucket.org/prowarehouse-nl/erase-install/downloads/ | grep pkg | cut -d'"' -f2 | head -n 1) + expectedTeamID="R55HK5K86Y" + ;; +omnigraffle7) + name="OmniGraffle" + type="dmg" + downloadURL=$(curl -fs "https://update.omnigroup.com/appcast/com.omnigroup.OmniGraffle7" \ + | xpath '//rss/channel/item[1]/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="34YW5XSRB7" + ;; +omnifocus3) + name="OmniFocus" + type="dmg" + downloadURL=$(curl -fs https://update.omnigroup.com/appcast/com.omnigroup.OmniFocus3 \ + | xpath '//rss/channel/item/enclosure[1]/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="34YW5XSRB7" + ;; +vlc) + name="VLC" + type="dmg" + downloadURL=$(curl -fs http://update.videolan.org/vlc/sparkle/vlc-intel64.xml \ + | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) + expectedTeamID="75GAHG3SZQ" + ;; +textmate) + name="TextMate" + type="tbz" + downloadURL="https://api.textmate.org/downloads/release?os=10.12" + expectedTeamID="45TL96F76G" + ;; +depnotify) + name="DEPNotify" + type="zip" + downloadURL="https://files.nomad.menu/DEPNotify.zip" + expectedTeamID="VRPY9KHGX6" + targetDir="/Applications/Utilities" + ;; +tunnelbear) + name="TunnelBear" + type="zip" + downloadURL="https://s3.amazonaws.com/tunnelbear/downloads/mac/TunnelBear.zip" + expectedTeamID="P2PHZ9K5JJ" + ;; +sourcetree) + name="Sourcetree" + type="zip" + downloadURL=$(curl -fs https://product-downloads.atlassian.com/software/sourcetree/Appcast/SparkleAppcastAlpha.xml \ + | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null \ + | cut -d '"' -f 2 ) + expectedTeamID="UPXU4CQZ5P" + ;; +boxdrive) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Box" + type="pkg" + downloadURL="https://e3.boxcdn.net/box-installers/desktop/releases/mac/Box.pkg" + expectedTeamID="M683GB7CPW" + ;; +aviatrix) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Aviatrix VPN Client" + type="pkg" + downloadURL="https://s3-us-west-2.amazonaws.com/aviatrix-download/AviatrixVPNClient/AVPNC_mac.pkg" + expectedTeamID="32953Z7NBN" + ;; +zoom) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Zoom.us" + type="pkg" + downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg" + expectedTeamID="BJ4HAAB9B3" + blockingProcesses=( zoom.us ) + ;; +sonos) + # credit: Erik Stam (@erikstam) + name="Sonos" + type="dmg" + downloadURL="https://www.sonos.com/redir/controller_software_mac" + expectedTeamID="2G4LW83Q3E" + ;; +coderunner) + # credit: Erik Stam (@erikstam) + name="CodeRunner" + type="zip" + downloadURL="https://coderunnerapp.com/download" + expectedTeamID="R4GD98AJF9" + ;; +openvpnconnect) + # credit: Erik Stam (@erikstam) + name="OpenVPN" + type="pkgInDmg" + pkgName="OpenVPN_Connect_Installer_signed.pkg" + downloadURL="https://openvpn.net/downloads/openvpn-connect-v2-macos.dmg" + expectedTeamID="ACV7L3WCD8" + ;; +pacifist) + name="Pacifist" + type="dmg" + downloadURL="https://charlessoft.com/cgi-bin/pacifist_download.cgi?type=dmg" + expectedTeamID="HRLUCP7QP4" + ;; +1password7) + name="1Password 7" + type="pkg" + downloadURL="https://app-updates.agilebits.com/download/OPM7" + expectedTeamID="2BUA8C4S2C" + ;; +webexmeetings) + # credit: Erik Stam (@erikstam) + name="Cisco Webex Meetings" + type="pkgInDmg" + downloadURL="https://akamaicdn.webex.com/client/webexapp.dmg" + expectedTeamID="DE8Y96K9QP" + ;; +webexteams) + # credit: Erik Stam (@erikstam) + name="Webex Teams" + type="dmg" + downloadURL="https://binaries.webex.com/WebexTeamsDesktop-MACOS-Gold/WebexTeams.dmg" + expectedTeamID="DE8Y96K9QP" + ;; +#citrixworkspace) + # credit: Erik Stam (@erikstam) + #name="Citrix Workspace" + #type="pkgInDmg" + #downloadURL="https://downloads.citrix.com/17596/CitrixWorkspaceApp.dmg?__gda__=1588183500_fc68033aef7d6d163d8b8309b964f1de" + #expectedTeamID="S272Y5R93J" + #;; +privileges) + # credit: Erik Stam (@erikstam) + name="Privileges" + type="zip" + downloadURL=$(downloadURLFromGit sap macOS-enterprise-privileges ) + expectedTeamID="7R5ZEU67FQ" + ;; +icons) + # credit: Mischa van der Bent (@mischavdbent) + name="Icons" + type="zip" + downloadURL=$(downloadURLFromGit sap macOS-icon-generator ) + expectedTeamID="7R5ZEU67FQ" + ;; +googledrivefilestream) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Google Drive File Stream" + type="pkgInDmg" + downloadURL="https://dl.google.com/drive-file-stream/GoogleDriveFileStream.dmg" + pkgName="GoogleDriveFileStream.pkg" + expectedTeamID="EQHXZ8M8AV" + ;; +plisteditpro) + name="PlistEdit Pro" + type="zip" + downloadURL="https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip" + expectedTeamID="8NQ43ND65V" + ;; +slack) + name="Slack" + type="dmg" + downloadURL="https://slack.com/ssb/download-osx" + expectedTeamID="BQR82RBBHL" + ;; +sublimetext) + # credit: Mischa van der Bent (@mischavdbent) + name="Sublime Text" + type="dmg" + downloadURL="https://download.sublimetext.com/latest/stable/osx" + expectedTeamID="Z6D26JE4Y4" + ;; +githubdesktop) + name="GitHub Desktop" + type="zip" + downloadURL="https://central.github.com/deployments/desktop/desktop/latest/darwin" + expectedTeamID="VEKTX9H2N7" + ;; +things) + name="Things" + type="zip" + downloadURL="https://culturedcode.com/things/download/" + expectedTeamID="JLMPQHK86H" + ;; +discord) + name="Discord" + type="dmg" + downloadURL="https://discordapp.com/api/download?platform=osx" + expectedTeamID="53Q6R32WPB" + ;; +grandperspective) + name="GrandPerspective" + type="dmg" + downloadURL="https://sourceforge.net/projects/grandperspectiv/files/latest/download" + expectedTeamID="3Z75QZGN66" + ;; +handbrake) + name="HandBrake" + type="dmg" + downloadURL=$(curl --silent --fail "https://api.github.com/repos/HandBrake/HandBrake/releases/latest" \ + | awk -F '"' "/browser_download_url/ && /dmg/ && ! /sig/ && ! /CLI/ { print \$4 }") + expectedTeamID="5X9DE89KYV" + ;; +netnewswire) + name="NetNewsWire" + type="zip" + downloadURL=$(curl -fs https://ranchero.com/downloads/netnewswire-release.xml \ + | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="M8L2WTLA8W" + ;; +resiliosynchome) + name="Resilio Sync" + type="dmg" + downloadURL="https://download-cdn.resilio.com/stable/osx/Resilio-Sync.dmg" + expectedTeamID="2953Z5SZSK" + ;; +cyberduck) + name="Cyberduck" + type="zip" + downloadURL=$(curl -fs https://version.cyberduck.io/changelog.rss | xpath '//rss/channel/item/enclosure/@url' 2>/dev/null | cut -d '"' -f 2 ) + expectedTeamID="G69SCX94XU" + ;; +dropbox) + name="Dropbox" + type="dmg" + downloadURL="https://www.dropbox.com/download?plat=mac&full=1" + expectedTeamID="G7HH3F8CAK" + ;; +teamviewer) + name="TeamViewer" + type="pkgInDmg" + pkgName="Install TeamViewer.pkg" + downloadURL="https://download.teamviewer.com/download/TeamViewer.dmg" + expectedTeamID="H7UGFBUGV6" + ;; +iterm2) + name="iTerm" + type="zip" + downloadURL="https://iterm2.com/downloads/stable/latest" + expectedTeamID="H7V7XYVQ7D" + ;; +royaltsx) + name="Royal TSX" + type="dmg" + downloadURL=$(curl -fs https://royaltsx-v4.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) + expectedTeamID="VXP8K9EDP6" + ;; +appcleaner) + # credit: Tadayuki Onishi (@kenchan0130) + name="AppCleaner" + 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) + expectedTeamID="X85ZX835W9" + ;; +karabinerelements) + # credit: Tadayuki Onishi (@kenchan0130) + name="Karabiner-Elements" + type="pkgInDmg" + downloadURL=$(downloadURLFromGit pqrs-org Karabiner-Elements) + expectedTeamID="G43BCU2T37" + ;; +postman) + # credit: Mischa van der Bent + name="Postman" + type="zip" + downloadURL="https://dl.pstmn.io/download/latest/osx" + expectedTeamID="H7H8Q7M5CK" + ;; +jamfpppcutility) + # credit: Mischa van der Bent + name="PPPC Utility" + type="zip" + downloadURL=$(downloadURLFromGit jamf PPPC-Utility) + expectedTeamID="483DWKW443" + ;; +jamfmigrator) + # credit: Mischa van der Bent + name="jamf-migrator" + type="zip" + downloadURL=$(downloadURLFromGit jamf JamfMigrator) + expectedTeamID="PS2F6S478M" + ;; +jamfreenroller) + # credit: Mischa van der Bent + name="ReEnroller" + type="zip" + downloadURL=$(downloadURLFromGit jamf ReEnroller) + expectedTeamID="PS2F6S478M" + ;; +adobereaderdc) + name="Adobe Acrobat Reader DC" + type="pkgInDmg" + downloadURL=$(adobecurrent=`curl -s 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"/AcroRdrDC_"$adobecurrent"_MUI.dmg) + expectedTeamID="JQ525L2MZD" + blockingProcesses=( "AdobeReader" ) + ;; +signal) + # credit: Søren Theilgaard + name="Signal" + type="dmg" + downloadURL=https://updates.signal.org/desktop/$(curl -fs https://updates.signal.org/desktop/latest-mac.yml | awk '/url/ && /dmg/ {print $3}') + expectedTeamID="U68MSDN6DR" + ;; +docker) + # credit: @securitygeneration + name="Docker" + type="dmg" + downloadURL="https://download.docker.com/mac/stable/Docker.dmg" + expectedTeamID="9BNSXJN65R" + ;; +brave) + # credit: @securitygeneration + name="Brave Browser" + type="dmg" + downloadURL="https://laptop-updates.brave.com/latest/osx" + expectedTeamID="9BNSXJN65R" + ;; +umbrellaroamingclient) + # credit: Tadayuki Onishi (@kenchan0130) + name="Umbrella Roaming Client" + type="pkgInZip" + downloadURL=https://disthost.umbrella.com/roaming/upgrade/mac/production/$( curl -fsL https://disthost.umbrella.com/roaming/upgrade/mac/production/manifest.json | awk -F '"' '/"downloadFilename"/ { print $4 }' ) + expectedTeamID="7P7HQ8H646" + ;; +powershell) + # credit: Tadayuki Onishi (@kenchan0130) + name="PowerShell" + type="pkg" + downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ + | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep -v lts ) + expectedTeamID="UBF8T346G9" + ;; +powershell-lts) + # credit: Tadayuki Onishi (@kenchan0130) + name="PowerShell" + type="pkg" + downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ + | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep lts) + expectedTeamID="UBF8T346G9" + ;; +wwdcformac) + name="WWDC" + type="zip" + downloadURL="https://cdn.wwdc.io/WWDC_latest.zip" + expectedTeamID="8C7439RJLG" + ;; +ringcentralmeetings) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Ring Central Meetings" + type="pkg" + downloadURL="http://dn.ringcentral.com/data/web/download/RCMeetings/1210/RCMeetingsClientSetup.pkg" + expectedTeamID="M932RC5J66" + blockingProcesses=( "RingCentral Meetings" ) + ;; +ringcentralapp) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Glip" + type="dmg" + downloadURL="https://downloads.ringcentral.com/glip/rc/GlipForMac" + expectedTeamID="M932RC5J66" + blockingProcesses=( "Glip" ) + ;; +sfsymbols) + name="SF Symbols" + type="pkgInDmg" + downloadURL="https://developer.apple.com/design/downloads/SF-Symbols.dmg" + expectedTeamID="Software Update" + ;; +swiftruntimeforcommandlinetools) + # Note: this installer will error on macOS versions later than 10.14.3 + name="SwiftRuntimeForCommandLineTools" + type="pkgInDmg" + downloadURL="https://updates.cdn-apple.com/2019/cert/061-41823-20191025-5efc5a59-d7dc-46d3-9096-396bb8cb4a73/SwiftRuntimeForCommandLineTools.dmg" + expectedTeamID="Software Update" + ;; # Note: Packages is signed but _not_ notarized, so spctl will reject it From 4c23c453b08ff9e6bb68b167e6dc4e52920d5052 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 16:10:58 +0200 Subject: [PATCH 11/29] added markers and updated adobe adobereader labels --- Installomator.sh | 50 ++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 7c99373..2a664af 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -13,7 +13,7 @@ VERSIONDATE='20200609' export PATH=/usr/bin:/bin:/usr/sbin:/sbin -# adjust these variables: +# NOTE: adjust these variables: # set to 0 for production, 1 for debugging # while debugging, items will be downloaded to the parent directory of this script @@ -38,6 +38,8 @@ BLOCKING_PROCESS_ACTION=prompt_user # - kill kill process without prompting or giving the user a chance to save +# NOTE: How labels work + # Each workflow label needs to be listed in the case statement below. # for each label these variables can be set: # @@ -110,16 +112,8 @@ BLOCKING_PROCESS_ACTION=prompt_user # When this variable is set (any value), $updateTool will be run as the current user. # -# todos: -# TODO: better logging (or, really, any logging other than echo) -# TODO: generic function Sparkle to get latest download -# TODO: ?notify user of errors -# TODO: ?generic function to initiate a Sparkle Update -# TODO: better version retrieval and reporting, before and after install - - -# functions to help with getting info +# MARK: functions to help with getting data # Logging log_location="/private/var/log/Installomator.log" @@ -602,10 +596,17 @@ jamfreenroller) downloadURL=$(downloadURLFromGit jamf ReEnroller) expectedTeamID="PS2F6S478M" ;; -adobereaderdc) +adobereaderdc|adobereaderdc-install) name="Adobe Acrobat Reader DC" type="pkgInDmg" - downloadURL=$(adobecurrent=`curl -s 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"/AcroRdrDC_"$adobecurrent"_MUI.dmg) + 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) + expectedTeamID="JQ525L2MZD" + blockingProcesses=( "AdobeReader" ) + ;; +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) expectedTeamID="JQ525L2MZD" blockingProcesses=( "AdobeReader" ) ;; @@ -884,7 +885,8 @@ brokenteamid) ;; esac -# functions +# MARK: Functions + cleanupAndExit() { # $1 = exit code, $2 message if [[ -n $2 && $1 -ne 0 ]]; then printlog "ERROR: $2" @@ -1068,7 +1070,7 @@ mountDMG() { cleanupAndExit 3 fi - echo "Mounted: $dmgmount" + printlog "Mounted: $dmgmount" } installFromDMG() { @@ -1110,7 +1112,7 @@ installFromPKG() { # check for root if [ "$(whoami)" != "root" ]; then # not running as root - echo "not running as root, exiting" + printlog "not running as root, exiting" cleanupAndExit 6 fi @@ -1208,11 +1210,11 @@ runUpdateTool() { -### main code starts here +# MARK: main code starts here -# extract info from data +# MARK: extract info from data if [ -z "$archiveName" ]; then case $type in dmg|pkg|zip|tbz) @@ -1256,7 +1258,7 @@ if [[ -z $blockingProcesses ]]; then blockingProcesses=( $name ) fi -# determine tmp dir +# MARK: determine tmp dir if [ "$DEBUG" -ne 0 ]; then # for debugging use script dir as working directory tmpDir=$(dirname "$0") @@ -1265,7 +1267,7 @@ else tmpDir=$(mktemp -d ) fi -# change directory to temporary working directory +# MARK: change directory to temporary working directory printlog "Changing directory to $tmpDir" if ! cd "$tmpDir"; then printlog "error changing directory $tmpDir" @@ -1273,7 +1275,7 @@ if ! cd "$tmpDir"; then cleanupAndExit 1 fi -# check if this is an Update +# MARK: check if this is an Update getAppVersion if [[ -n $appVersion ]]; then if [[ $DEBUG -eq 0 ]]; then @@ -1285,7 +1287,7 @@ if [[ -n $appVersion ]]; then fi fi -# when user is logged in, and app is running, prompt user to quit app +# MARK: when user is logged in, and app is running, prompt user to quit app if [[ $BLOCKING_PROCESS_ACTION == "ignore" ]]; then printlog "ignoring blocking processes" @@ -1299,7 +1301,7 @@ else fi fi -# download the archive +# MARK: download the archive if [ -f "$archiveName" ] && [ "$DEBUG" -ne 0 ]; then printlog "$archiveName exists and DEBUG enabled, skipping download" @@ -1312,6 +1314,8 @@ else fi fi +# MARK: install the download + case $type in dmg) installFromDMG @@ -1337,7 +1341,7 @@ case $type in ;; esac -# print installed application location and version +# MARK: print installed application location and version sleep 10 # wait a moment to let spotlight catch up getAppVersion From 9e42ec21f200fc9af09438b76bb255a5e340e3e1 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 16:23:42 +0200 Subject: [PATCH 12/29] updated search pattern to list labels --- Installomator.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 2a664af..1daa491 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -160,7 +160,7 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name printlog "################## Start Installomator" -# check minimal macOS requirement +# MARK: check minimal macOS requirement autoload is-at-least if ! is-at-least 10.14 $(sw_vers -productVersion); then @@ -168,10 +168,10 @@ if ! is-at-least 10.14 $(sw_vers -productVersion); then exit 98 fi -# get the label +# MARK: get the label if [[ $# -eq 0 ]]; then printlog "no label provided. Printing labels:" - grep -E '^[a-z0-9]*\)$' "$0" | tr -d ')' | grep -v -E '^broken' | sort + grep -E '^[a-z0-9\-]*(\)|\|\\)$' "$0" | tr -d ')|\' | grep -v -E '^broken' | grep -v -E '^(longversion|version)$' | sort exit 0 elif [[ $# -gt 3 ]]; then # jamf uses $4 for the first custom parameter @@ -190,7 +190,7 @@ label=${label:l} currentUser=$(scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ { print $3 }') -# labels in case statement +# MARK: labels in case statement case $label in version) # print the script VERSION @@ -204,7 +204,7 @@ longversion) ;; # label descriptions start here - autodmg) +autodmg) # credit: Mischa van der Bent (@mischavdbent) name="AutoDMG" type="dmg" @@ -596,7 +596,8 @@ jamfreenroller) downloadURL=$(downloadURLFromGit jamf ReEnroller) expectedTeamID="PS2F6S478M" ;; -adobereaderdc|adobereaderdc-install) +adobereaderdc|\ +adobereaderdc-install) name="Adobe Acrobat Reader DC" type="pkgInDmg" 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) From 51baa0636b26d8ba522269bd89583eede494ff9a Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 16:25:49 +0200 Subject: [PATCH 13/29] commented powershell labels because the installers are not notarized --- Installomator.sh | 52 +++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 1daa491..770c198 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -639,22 +639,25 @@ umbrellaroamingclient) downloadURL=https://disthost.umbrella.com/roaming/upgrade/mac/production/$( curl -fsL https://disthost.umbrella.com/roaming/upgrade/mac/production/manifest.json | awk -F '"' '/"downloadFilename"/ { print $4 }' ) expectedTeamID="7P7HQ8H646" ;; -powershell) - # credit: Tadayuki Onishi (@kenchan0130) - name="PowerShell" - type="pkg" - downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ - | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep -v lts ) - expectedTeamID="UBF8T346G9" - ;; -powershell-lts) - # credit: Tadayuki Onishi (@kenchan0130) - name="PowerShell" - type="pkg" - downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ - | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep lts) - expectedTeamID="UBF8T346G9" - ;; + +# NOTE: powershell installers are not notarized +# powershell) +# # credit: Tadayuki Onishi (@kenchan0130) +# name="PowerShell" +# type="pkg" +# downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ +# | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep -v lts ) +# expectedTeamID="UBF8T346G9" +# ;; +# powershell-lts) +# # credit: Tadayuki Onishi (@kenchan0130) +# name="PowerShell" +# type="pkg" +# downloadURL=$(curl -fs "https://api.github.com/repos/Powershell/Powershell/releases/latest" \ +# | awk -F '"' '/browser_download_url/ && /pkg/ { print $4 }' | grep lts) +# expectedTeamID="UBF8T346G9" +# ;; + wwdcformac) name="WWDC" type="zip" @@ -691,15 +694,14 @@ swiftruntimeforcommandlinetools) expectedTeamID="Software Update" ;; - -# Note: Packages is signed but _not_ notarized, so spctl will reject it -# packages) -# name="Packages" -# type="pkgInDmg" -# pkgName="Install Packages.pkg" -# downloadURL="http://s.sudre.free.fr/Software/files/Packages.dmg" -# expectedTeamID="NL5M9E394P" -# ;; +# NOTE: Packages is signed but _not_ notarized, so spctl will reject it +# packages) +# name="Packages" +# type="pkgInDmg" +# pkgName="Install Packages.pkg" +# downloadURL="http://s.sudre.free.fr/Software/files/Packages.dmg" +# expectedTeamID="NL5M9E394P" +# ;; # msupdate codes from: # https://docs.microsoft.com/en-us/deployoffice/mac/update-office-for-mac-using-msupdate From 5a605172b1123cbdaddc7c913d144f3baa7ce508 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 16:44:13 +0200 Subject: [PATCH 14/29] added aquaskk --- Installomator.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index 770c198..b124797 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -693,6 +693,13 @@ swiftruntimeforcommandlinetools) downloadURL="https://updates.cdn-apple.com/2019/cert/061-41823-20191025-5efc5a59-d7dc-46d3-9096-396bb8cb4a73/SwiftRuntimeForCommandLineTools.dmg" expectedTeamID="Software Update" ;; +aquaskk) + # credit: Tadayuki Onishi (@kenchan0130) + name="aquaskk" + type="pkg" + downloadURL="$(downloadURLFromGit codefirst aquaskk)" + expectedTeamID="FPZK4WRGW7" + ;; # NOTE: Packages is signed but _not_ notarized, so spctl will reject it # packages) From b4c987317ada8c4914c4d2d65332f5fd0810a4a5 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:28:47 +0200 Subject: [PATCH 15/29] added krisp and code 42, re-added sonoss2 --- Installomator.sh | 58 +++++++++++++++++++++++++++++++++++++++++------- Labels.txt | 7 +++--- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index b124797..ee29f86 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -150,7 +150,7 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name | awk -F '"' "/browser_download_url/ && /$filetype/ { print \$4 }") fi if [ -z "$downloadURL" ]; then - echo "could not retrieve download URL for $gitusername/$gitreponame" + printlog "could not retrieve download URL for $gitusername/$gitreponame" exit 9 else echo "$downloadURL" @@ -220,7 +220,11 @@ googlechrome) googlechromepkg) name="Google Chrome" type="pkg" - downloadURL="https://dl.google.com/chrome/mac/stable/gcem/GoogleChrome.pkg" + # + # Note: this url acknowledges that you accept the terms of service + # 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" expectedTeamID="EQHXZ8M8AV" updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent" updateToolArguments=( -runMode oneshot -userInitiated YES ) @@ -383,13 +387,20 @@ zoom) expectedTeamID="BJ4HAAB9B3" blockingProcesses=( zoom.us ) ;; -sonos) +sonos|\ +sonoss1) # credit: Erik Stam (@erikstam) - name="Sonos" + name="Sonos S1 Controller" type="dmg" downloadURL="https://www.sonos.com/redir/controller_software_mac" expectedTeamID="2G4LW83Q3E" ;; +sonoss2) + name="Sonos" + type="dmg" + downloadURL="https://www.sonos.com/redir/controller_software_mac2" + expectedTeamID="2G4LW83Q3E" + ;; coderunner) # credit: Erik Stam (@erikstam) name="CodeRunner" @@ -639,6 +650,14 @@ umbrellaroamingclient) downloadURL=https://disthost.umbrella.com/roaming/upgrade/mac/production/$( curl -fsL https://disthost.umbrella.com/roaming/upgrade/mac/production/manifest.json | awk -F '"' '/"downloadFilename"/ { print $4 }' ) expectedTeamID="7P7HQ8H646" ;; +# TODO: vmwarefusion installation process needs testing +# vmwarefusion) +# # credit: Erik Stam (@erikstam) +# name="VMware Fusion" +# type="dmg" +# downloadURL="https://www.vmware.com/go/getfusion" +# expectedTeamID="EG7KH642X6" +# ;; # NOTE: powershell installers are not notarized # powershell) @@ -700,6 +719,29 @@ aquaskk) downloadURL="$(downloadURLFromGit codefirst aquaskk)" expectedTeamID="FPZK4WRGW7" ;; +krisp) + # credit: Tadayuki Onishi (@kenchan0130) + name="Krisp" + type="pkg" + downloadURL="https://download.krisp.ai/mac" + expectedTeamID="U5R26XM5Z2" + ;; +torbrowser) + # credit: Søren Theilgaard (@theilgaard) + name="Tor Browser" + type="dmg" + downloadURL=https://www.torproject.org$(curl -fs https://www.torproject.org/download/ | grep "downloadLink" | grep dmg | cut -d '"' -f 4) + appNewVersion=$(curl -fs https://www.torproject.org/download/ | grep "downloadLink" | grep dmg | cut -d '"' -f 4 | cut -d / -f 4) + expectedTeamID="MADPSAYN6T" + ;; +code42) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="Code42" + type="pkgInDmg" + downloadURL=https://download.code42.com/installs/agent/latest-mac.dmg + expectedTeamID="9YV9435DHD" + BLOCKING_PROCESS_ACTION=ignore + ;; # NOTE: Packages is signed but _not_ notarized, so spctl will reject it # packages) @@ -972,7 +1014,7 @@ checkRunningProcesses() { countedProcesses=0 for x in ${blockingProcesses}; do if pgrep -xq "$x"; then - echo "found blocking process $x" + printlog "found blocking process $x" case $BLOCKING_PROCESS_ACTION in kill) @@ -1040,7 +1082,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir cleanupAndExit 6 "not running as root, exiting" fi - echo "DEBUG enabled, skipping copy and chown steps" + printlog "DEBUG enabled, skipping copy and chown steps" return 0 fi @@ -1059,7 +1101,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir # set ownership to current user if [ "$currentUser" != "loginwindow" ]; then - echo "Changing owner to $currentUser" + printlog "Changing owner to $currentUser" chown -R "$currentUser" "$targetDir/$appName" else printlog "No user logged in, not changing user" @@ -1099,7 +1141,7 @@ installFromPKG() { fi teamID=$(echo $spctlout | awk -F '(' '/origin=/ {print $2 }' | tr -d '()' ) - echo $teamID + # Apple signed software has no teamID, grab entire origin instead if [[ -z $teamID ]]; then teamID=$(echo $spctlout | awk -F '=' '/origin=/ {print $NF }') diff --git a/Labels.txt b/Labels.txt index 0d9a722..972ba68 100644 --- a/Labels.txt +++ b/Labels.txt @@ -3,12 +3,14 @@ adobereaderdc adobereaderdc-install adobereaderdc-update appcleaner +aquaskk atom autodmg aviatrix bbedit boxdrive brave +code42 coderunner cyberduck depnotify @@ -33,6 +35,7 @@ jamfmigrator jamfpppcutility jamfreenroller karabinerelements +krisp malwarebytes microsoftautoupdate microsoftcompanyportal @@ -58,8 +61,6 @@ openvpnconnect pacifist plisteditpro postman -powershell -powershell-lts privileges resiliosynchome ringcentralapp @@ -80,11 +81,11 @@ swiftruntimeforcommandlinetools teamviewer textmate things +torbrowser tunnelbear umbrellaroamingclient visualstudiocode vlc -vmwarefusion webexmeetings webexteams whatsapp From eed3681118da336740a0cd74c7ab5acd4d9a023c Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:28:56 +0200 Subject: [PATCH 16/29] added changelog file --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..da9ffb8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,19 @@ +## v0.3 - 2020-07- + +- added several new labels for total of +- removed the powershell labels, since the installer is not notarized +- when run without any arguments, the script now lists all labels +- changed how zips are expanded because this was broken on Mojave +- improved logging in some statements +- several more minor improvements + +## v0.2 - 2020-06-09 + +- many fixes for broken URLs and other bugs +- the `pkgInDmg` and `pkgInZip` now search for a pkg file in the archive in case the file name varies with the version +- notification on successful installation can be suppressed with the `NOTIFY` variable +- Apple signed installers and apps that don’t have a Team ID are verified correctly now +improved logging +- several new applications: count increased from 62 in 0.1 to 87 in 0.2 + +## v0.1 - 2020-05-12 \ No newline at end of file From 5f469e0dc5672ab7fa3398c3993228e2cc2948cb Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:30:12 +0200 Subject: [PATCH 17/29] cleaned up output when running with no argument --- Installomator.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index ee29f86..3e8a4a0 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -158,7 +158,6 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name fi } -printlog "################## Start Installomator" # MARK: check minimal macOS requirement autoload is-at-least @@ -170,7 +169,6 @@ fi # MARK: get the label if [[ $# -eq 0 ]]; then - printlog "no label provided. Printing labels:" grep -E '^[a-z0-9\-]*(\)|\|\\)$' "$0" | tr -d ')|\' | grep -v -E '^broken' | grep -v -E '^(longversion|version)$' | sort exit 0 elif [[ $# -gt 3 ]]; then @@ -181,6 +179,7 @@ fi label=${1:?"no label provided"} +printlog "################## Start Installomator" printlog "################## $label" # lowercase the label From 4c7edc2ddd1ba42eefbb30ad79b09c58a807cb79 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:35:04 +0200 Subject: [PATCH 18/29] added NoMAD, closes #34 --- Installomator.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index 3e8a4a0..9d7b291 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -741,6 +741,16 @@ code42) expectedTeamID="9YV9435DHD" BLOCKING_PROCESS_ACTION=ignore ;; +nomad) + # credit: Tadayuki Onishi (@kenchan0130) + name="NoMAD" + type="pkg" + downloadURL="https://files.nomad.menu/NoMAD.pkg" + expectedTeamID="AAPZK3CB24" + ;; + + +# MARK: add new labels above here # NOTE: Packages is signed but _not_ notarized, so spctl will reject it # packages) From 54218459a29e6615a2b12012f97c6b0f65584104 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:39:14 +0200 Subject: [PATCH 19/29] added bettertouchtool, closes #43 --- Installomator.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index 9d7b291..c59c513 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -748,7 +748,12 @@ nomad) downloadURL="https://files.nomad.menu/NoMAD.pkg" expectedTeamID="AAPZK3CB24" ;; - +bettertouchtool) + name="BetterTouchTool" + type="zip" + downloadURL="https://folivora.ai/releases/BetterTouchTool.zip" + expectedTeamID="DAFVSXZ82P" + ;; # MARK: add new labels above here From 8c96d9e263eaa55f267b42a66e5e8243af56a8f3 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:41:53 +0200 Subject: [PATCH 20/29] added R, closes #44 --- Installomator.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index c59c513..d0002f8 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -749,11 +749,19 @@ nomad) expectedTeamID="AAPZK3CB24" ;; bettertouchtool) + # credit: Tadayuki Onishi (@kenchan0130) name="BetterTouchTool" type="zip" downloadURL="https://folivora.ai/releases/BetterTouchTool.zip" expectedTeamID="DAFVSXZ82P" ;; +r) + # credit: Tadayuki Onishi (@kenchan0130) + name="R" + type="pkg" + downloadURL=$( curl -fsL https://formulae.brew.sh/api/cask/r.json | sed -n 's/^.*"url":"\([^"]*\)".*$/\1/p' ) + expectedTeamID="VZLD955F6P" + ;; # MARK: add new labels above here From 201edabfd0a64083a6645fd8443302fc978eeb68 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:43:39 +0200 Subject: [PATCH 21/29] added 8x8 virtual office --- Installomator.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index d0002f8..ec74adc 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -762,7 +762,14 @@ r) downloadURL=$( curl -fsL https://formulae.brew.sh/api/cask/r.json | sed -n 's/^.*"url":"\([^"]*\)".*$/\1/p' ) expectedTeamID="VZLD955F6P" ;; - +8x8) + # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + name="8x8 - Virtual Office" + type="dmg" + downloadURL=$(curl -fs https://support.8x8.com/cloud-phone-service/voice/virtual-office-desktop/download-virtual-office-desktop | grep -m 1 -o "http.*VOD.*.dmg") + expectedTeamID="FC967L3QRG" + ;; + # MARK: add new labels above here # NOTE: Packages is signed but _not_ notarized, so spctl will reject it From 65d0d6412757052dd4316d881e5b8c6cd96d0248 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jul 2020 17:49:17 +0200 Subject: [PATCH 22/29] added egnyte --- Installomator.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index ec74adc..e4aea1c 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -763,13 +763,20 @@ r) expectedTeamID="VZLD955F6P" ;; 8x8) - # credit: Isaac Ordonez, Mann consulting (@mannconsulting) + # credit: #D-A-James from MacAdmins Slack name="8x8 - Virtual Office" type="dmg" - downloadURL=$(curl -fs https://support.8x8.com/cloud-phone-service/voice/virtual-office-desktop/download-virtual-office-desktop | grep -m 1 -o "http.*VOD.*.dmg") + downloadURL='https://support.8x8.com/cloud-phone-service/voice/virtual-office-desktop/download-virtual-office-desktop' expectedTeamID="FC967L3QRG" ;; - +egnyte) + # credit: #MoeMunyoki from MacAdmins Slack + name="Egnyte Connect" + type="pkg" + downloadURL="https://egnyte-cdn.egnyte.com/egnytedrive/mac/en-us/latest/EgnyteConnectMac.pkg" + expectedTeamID="FELUD555VC" + BLOCKING_PROCESS_ACTION=ignore + ;; # MARK: add new labels above here # NOTE: Packages is signed but _not_ notarized, so spctl will reject it From 39d3dfceac3c9eeadf46cb4cdf22ac0bd7c68767 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 23 Jul 2020 11:11:59 +0200 Subject: [PATCH 23/29] updated getAppVersion, closes #39 --- Installomator.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index e4aea1c..334a861 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -777,6 +777,7 @@ egnyte) expectedTeamID="FELUD555VC" BLOCKING_PROCESS_ACTION=ignore ;; + # MARK: add new labels above here # NOTE: Packages is signed but _not_ notarized, so spctl will reject it @@ -1021,7 +1022,14 @@ displaynotification() { # $1: message $2: title getAppVersion() { # get all apps matching name - applist=$(mdfind "kMDItemFSName == '$appName' && kMDItemKind == 'Application'" -0 ) + applist=$(mdfind "kind:application $appName" -0 ) + if [[ $applist = "" ]]; then + printlog "Spotlight not returning any app, trying manually in /Applications." + if [[ -d "/Applications/$appName" ]]; then + applist="/Applications/$appName" + fi + fi + appPathArray=( ${(0)applist} ) if [[ ${#appPathArray} -gt 0 ]]; then From 246ce74f4e66e4125b9462a0804d24d831f1d659 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 23 Jul 2020 11:17:44 +0200 Subject: [PATCH 24/29] updated displaydialog with title, closes #38 --- Installomator.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 334a861..5676592 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -1002,9 +1002,10 @@ runAsUser() { fi } -displaydialog() { # $1: message +displaydialog() { # $1: message $2: title message=${1:-"Message"} - runAsUser /usr/bin/osascript -e "button returned of (display dialog \"$message\" buttons {\"Not Now\", \"Quit and Update\"} default button \"Quit and Update\")" + title=${2:-"Installomator"} + runAsUser /usr/bin/osascript -e "button returned of (display dialog \"$message\" with title \"$title\" buttons {\"Not Now\", \"Quit and Update\"} default button \"Quit and Update\")" } displaynotification() { # $1: message $2: title @@ -1066,11 +1067,11 @@ checkRunningProcesses() { pkill $x ;; prompt_user) - button=$(displaydialog "The application $x needs to be updated. Quit $x to continue updating?") + button=$(displaydialog "Quit “$x” to continue updating? (Leave this dialogue if you want to activate this update later)." "The application “$x” needs to be updated.") if [[ $button = "Not Now" ]]; then cleanupAndExit 10 "user aborted update" else - runAsUser osascript -e "tell app \"$x\" to quit" + runAsUser osascript -e "tell app “$x” to quit" fi ;; silent_fail) From d191b23a504bf3e2ffc5742c4064a7be0c3d451d Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 23 Jul 2020 11:27:54 +0200 Subject: [PATCH 25/29] Update README.md --- README.md | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index d9d8693..5cc5a36 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,20 @@ Your production and deployment environment will be different, please test thorou I have put a lot of work into making it stable and safe, but I cannot - of course - make _any_ promises that it won't break in some not yet encountered edge case. +## Support and Contributing + +Discussion, support and advice around Installomator happens in the `#installomator` channel in the [MacAdmins Slack](https:/macadmins.org). Go there for support questions. + +Do not create an issue just when you have a questions, but do file an issue or pull request for bugs or wrong behavior. When in doubt, ask in the above Slack channel. + +If you have added a new label, then please file a pull request. (and Thank you!) + +## More reading + +There are a few interesting post on Installomator on my weblog: + +- [Introducing Installomator](https://scriptingosx.com/2020/05/introducing-installomator/) +- [Using Installomator with Jamf Pro](https://scriptingosx.com/2020/06/using-installomator-with-jamf-pro/) by Mischa van der Bent ## Background @@ -97,12 +111,12 @@ There is a debug mode and one other setting that can be controlled with variable As of this writing, Installomator knows how to download and install more than 50 different applications. You can add more by adding a block to the _long_ `case` statement starting on line 160. Some of them are more elaborate, but most of them just need this information: ``` - googlechrome) - name="Google Chrome" - type="dmg" - downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" - expectedTeamID="EQHXZ8M8AV" - ;; +googlechrome) + name="Google Chrome" + type="dmg" + downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" + expectedTeamID="EQHXZ8M8AV" + ;; ``` When you know how to extract these pieces of information from the application and/or download, then you can add an application to Installomator. @@ -211,12 +225,12 @@ The `NOTIFY` variable controls the notifications shown to the user. As of now, t The script requires four pieces of information to download and install an application: ``` - spotify) - name="Spotify" - type="dmg" - downloadURL="https://download.scdn.co/Spotify.dmg" - expectedTeamID="2FNC3A47ZF" - ;; +spotify) + name="Spotify" + type="dmg" + downloadURL="https://download.scdn.co/Spotify.dmg" + expectedTeamID="2FNC3A47ZF" + ;; ``` The four required variables are @@ -244,7 +258,7 @@ The 10-character Developer Team ID with which the application or pkg is signed a - Applications (in dmgs or zips) `spctl -a -vv /Applications/BBEdit.app` - - Pkgs + - Installation Packages (pkg) `spctl -a -vv -t install ~/Downloads/desktoppr-0.2.pkg` @@ -337,5 +351,5 @@ But it is not suited as a client install automation tool. ### Why don't you just use brew? -Read the explanation for `autopkg`, pretty much the same applies for `brew`, i.e. While it is useful on a single Mac, it is a un-manageable mess when you think about deploying and managing on a fleet of computers. +Read the explanation for `autopkg`, pretty much the same applies for `brew`, i.e. while it is useful on a single Mac, it is a un-manageable mess when you think about deploying and managing on a fleet of computers. From 56e38de821a377c34054778bc87d1fb9c4f25bd1 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 23 Jul 2020 12:43:55 +0200 Subject: [PATCH 26/29] Update Labels.txt --- Labels.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Labels.txt b/Labels.txt index 972ba68..0ac878f 100644 --- a/Labels.txt +++ b/Labels.txt @@ -1,4 +1,5 @@ 1password7 +8x8 adobereaderdc adobereaderdc-install adobereaderdc-update @@ -8,6 +9,7 @@ atom autodmg aviatrix bbedit +bettertouchtool boxdrive brave code42 @@ -18,6 +20,7 @@ desktoppr discord docker dropbox +egnyte eraseinstall firefox firefoxesrpkg @@ -55,6 +58,7 @@ microsoftskypeforbusiness microsoftteams microsoftword netnewswire +nomad omnifocus3 omnigraffle7 openvpnconnect @@ -62,6 +66,7 @@ pacifist plisteditpro postman privileges +r resiliosynchome ringcentralapp ringcentralmeetings From ea2d4d47e5c6305b2b15b9872d9126aae9454a57 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 23 Jul 2020 13:26:27 +0200 Subject: [PATCH 27/29] some more various fixes before 0.3 release --- Installomator.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 5676592..31619ea 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -557,6 +557,7 @@ iterm2) type="zip" downloadURL="https://iterm2.com/downloads/stable/latest" expectedTeamID="H7V7XYVQ7D" + blockingProcesses=( iTerm2 ) ;; royaltsx) name="Royal TSX" @@ -763,19 +764,19 @@ r) expectedTeamID="VZLD955F6P" ;; 8x8) - # credit: #D-A-James from MacAdmins Slack + # credit: #D-A-James from MacAdmins Slack and Isaac Ordonez, Mann consulting (@mannconsulting) name="8x8 - Virtual Office" type="dmg" - downloadURL='https://support.8x8.com/cloud-phone-service/voice/virtual-office-desktop/download-virtual-office-desktop' + downloadURL=$(curl -fs https://support.8x8.com/cloud-phone-service/voice/virtual-office-desktop/download-virtual-office-desktop | grep -m 1 -o "http.*VOD.*.dmg") expectedTeamID="FC967L3QRG" - ;; + ;; egnyte) # credit: #MoeMunyoki from MacAdmins Slack name="Egnyte Connect" type="pkg" downloadURL="https://egnyte-cdn.egnyte.com/egnytedrive/mac/en-us/latest/EgnyteConnectMac.pkg" expectedTeamID="FELUD555VC" - BLOCKING_PROCESS_ACTION=ignore + blockingProcesses=( NONE ) ;; # MARK: add new labels above here @@ -1005,7 +1006,7 @@ runAsUser() { displaydialog() { # $1: message $2: title message=${1:-"Message"} title=${2:-"Installomator"} - runAsUser /usr/bin/osascript -e "button returned of (display dialog \"$message\" with title \"$title\" buttons {\"Not Now\", \"Quit and Update\"} default button \"Quit and Update\")" + runAsUser osascript -e "button returned of (display dialog \"$message\" with title \"$title\" buttons {\"Not Now\", \"Quit and Update\"} default button \"Quit and Update\")" } displaynotification() { # $1: message $2: title @@ -1071,7 +1072,7 @@ checkRunningProcesses() { if [[ $button = "Not Now" ]]; then cleanupAndExit 10 "user aborted update" else - runAsUser osascript -e "tell app “$x” to quit" + runAsUser osascript -e "tell app \"$x\" to quit" fi ;; silent_fail) From 0124a7fed115c6891219d0217d34b82e97ff2939 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 23 Jul 2020 13:28:45 +0200 Subject: [PATCH 28/29] notification text updated, closes #41 --- Installomator.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 31619ea..4e84dda 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -740,7 +740,7 @@ code42) type="pkgInDmg" downloadURL=https://download.code42.com/installs/agent/latest-mac.dmg expectedTeamID="9YV9435DHD" - BLOCKING_PROCESS_ACTION=ignore + blockingProcesses=( NONE ) ;; nomad) # credit: Tadayuki Onishi (@kenchan0130) @@ -1453,7 +1453,7 @@ printlog "$message" if [[ $currentUser != "loginwindow" && $NOTIFY == "success" ]]; then printlog "notifying" - displaynotification "$message" "Installation complete!" + displaynotification "$message" "$name update/installation complete!" fi # all done! From 1bc48474023a3037ce67deec998153cc9a120aec Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 23 Jul 2020 13:28:58 +0200 Subject: [PATCH 29/29] updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da9ffb8..1aaf739 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## v0.3 - 2020-07- -- added several new labels for total of +- added several new labels for total of 98 - removed the powershell labels, since the installer is not notarized - when run without any arguments, the script now lists all labels - changed how zips are expanded because this was broken on Mojave