From e8948dafb31ef4f5ccee54a227fbc8399ccff10b Mon Sep 17 00:00:00 2001 From: taboc741 <34924920+taboc741@users.noreply.github.com> Date: Mon, 14 Feb 2022 12:33:20 -0500 Subject: [PATCH 01/22] Create NordVPNTeams.sh Adding download package support for NordLayer aka NordVPN Teams --- fragments/labels/NordVPNTeams.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/NordVPNTeams.sh diff --git a/fragments/labels/NordVPNTeams.sh b/fragments/labels/NordVPNTeams.sh new file mode 100644 index 0000000..bcdc377 --- /dev/null +++ b/fragments/labels/NordVPNTeams.sh @@ -0,0 +1,7 @@ +nordlayer) + # credit: Taboc741 (https://github.com/taboc741) + name="NordLayer" + type="pkg" + downloadURL="https://downloads.nordlayer.com/mac/latest/NordVPNTeams.pkg" + expectedTeamID="W5W395V82Y" + ;; From fbe58f8ee395299cad899269395cdb1a5fcada5f Mon Sep 17 00:00:00 2001 From: taboc741 <34924920+taboc741@users.noreply.github.com> Date: Mon, 14 Feb 2022 12:46:46 -0500 Subject: [PATCH 02/22] Update and rename NordVPNTeams.sh to NordLayer.sh Fixed legacy branding from their documentation and pointed to modern URL. --- fragments/labels/{NordVPNTeams.sh => NordLayer.sh} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename fragments/labels/{NordVPNTeams.sh => NordLayer.sh} (93%) diff --git a/fragments/labels/NordVPNTeams.sh b/fragments/labels/NordLayer.sh similarity index 93% rename from fragments/labels/NordVPNTeams.sh rename to fragments/labels/NordLayer.sh index bcdc377..614b8cf 100644 --- a/fragments/labels/NordVPNTeams.sh +++ b/fragments/labels/NordLayer.sh @@ -2,6 +2,6 @@ nordlayer) # credit: Taboc741 (https://github.com/taboc741) name="NordLayer" type="pkg" - downloadURL="https://downloads.nordlayer.com/mac/latest/NordVPNTeams.pkg" + downloadURL="https://downloads.nordlayer.com/mac/latest/NordLayer.pkg" expectedTeamID="W5W395V82Y" ;; From 63ddb9d2e7a69e0ed79734e44527ec1ddb600d22 Mon Sep 17 00:00:00 2001 From: theadamcraig Date: Mon, 2 May 2022 13:00:30 -0400 Subject: [PATCH 03/22] Create bluejeanswithaudiodriver.sh the exact same as the bluejeans label, but with a new variable choiceChangesXML this allows the package to be customized on installation which in this instance will have the BlueJeans Audio Driver installed with the software. --- fragments/labels/bluejeanswithaudiodriver.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 fragments/labels/bluejeanswithaudiodriver.sh diff --git a/fragments/labels/bluejeanswithaudiodriver.sh b/fragments/labels/bluejeanswithaudiodriver.sh new file mode 100644 index 0000000..d210af1 --- /dev/null +++ b/fragments/labels/bluejeanswithaudiodriver.sh @@ -0,0 +1,12 @@ +bluejeanswithaudiodriver) + name="BlueJeans" + type="pkg" + if [[ $(arch) == "arm64" ]]; then + downloadURL=$(curl -fs "https://www.bluejeans.com/downloads" | xmllint --html --format - 2>/dev/null | grep -o "https://.*BlueJeans.*Installer.*arm.*.pkg" ) + elif [[ $(arch) == "i386" ]]; then + downloadURL=$(curl -fs "https://www.bluejeans.com/downloads" | xmllint --html --format - 2>/dev/null | grep -o "https://.*BlueJeansInstaller.*x86.*.dmg" | sed 's/dmg/pkg/g') + fi + appNewVersion=$(echo $downloadURL | cut -d '/' -f6) + choiceChangesXML='attributeSetting1choiceAttributeselectedchoiceIdentifiercom.tatvikmohit.BlueJeans-Audio' + expectedTeamID="HE4P42JBGN" + ;; From 52ad8d9d88f8bc061982fe5c85c39295e174ddf5 Mon Sep 17 00:00:00 2001 From: Mike Matter Date: Mon, 9 May 2022 11:40:28 -0500 Subject: [PATCH 04/22] Adding Workspace ONE support --- Installomator.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index 3f64473..d20ff44 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -367,10 +367,13 @@ displaydialogContinue() { # $1: message $2: title displaynotification() { # $1: message $2: title message=${1:-"Message"} title=${2:-"Notification"} + hubcli="/usr/local/bin/hubcli" manageaction="/Library/Application Support/JAMF/bin/Management Action.app/Contents/MacOS/Management Action" if [[ -x "$manageaction" ]]; then "$manageaction" -message "$message" -title "$title" + elif [[ -x "$hubcli" ]]; then + sudo "$hubcli" notify -t "$title" -i "$message" -c "Dismiss" else runAsUser osascript -e "display notification \"$message\" with title \"$title\"" fi @@ -4837,6 +4840,11 @@ case $LOGO in LOGO="/Library/Intune/Microsoft Intune Agent.app/Contents/Resources/AppIcon.icns" if [[ -z $MDMProfileName ]]; then; MDMProfileName="Management Profile"; fi ;; + ws1) + # Mosyle Business + LOGO="/Applications/Workspace ONE Intelligent Hub.app/Contents/Resources/AppIcon.icns" + if [[ -z $MDMProfileName ]]; then; MDMProfileName="Device Manager"; fi + ;; esac if [[ ! -a "${LOGO}" ]]; then if [[ $(sw_vers -buildVersion) > "19" ]]; then From 4f3b130b0462a7081a8321f763718298695ce514 Mon Sep 17 00:00:00 2001 From: Mike Matter Date: Mon, 9 May 2022 11:50:27 -0500 Subject: [PATCH 05/22] Adding Workspace ONE support (fixing comment) --- Installomator.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index d20ff44..6a6f725 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -4841,7 +4841,7 @@ case $LOGO in if [[ -z $MDMProfileName ]]; then; MDMProfileName="Management Profile"; fi ;; ws1) - # Mosyle Business + # Workspace ONE LOGO="/Applications/Workspace ONE Intelligent Hub.app/Contents/Resources/AppIcon.icns" if [[ -z $MDMProfileName ]]; then; MDMProfileName="Device Manager"; fi ;; From 5477c5ccfe12250aac4f50b83f1e39221fa6e67f Mon Sep 17 00:00:00 2001 From: Mike Matter Date: Mon, 9 May 2022 12:02:50 -0500 Subject: [PATCH 06/22] Adding WS1 support (Blocking app dialogue) --- Installomator.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Installomator.sh b/Installomator.sh index 6a6f725..a520aed 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -81,6 +81,7 @@ LOGO=appstore # - mosylem Mosyle Manager (Education) # - addigy Addigy # - microsoft Microsoft Endpoint Manager (Intune) +# - ws1 Workspace ONE (AirWatch) # path can also be set in the command call, and if file exists, it will be used. # Like 'LOGO="/System/Applications/App\ Store.app/Contents/Resources/AppIcon.icns"' # (spaces have to be escaped). From 9e0bfd5818d426f85016227516bf5c99bcf841a5 Mon Sep 17 00:00:00 2001 From: Mike Matter Date: Wed, 11 May 2022 11:33:33 -0500 Subject: [PATCH 07/22] WS1 support (remove sudo) Removing sudo from notify command. --- Installomator.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index a520aed..a6b4bb3 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -374,7 +374,7 @@ displaynotification() { # $1: message $2: title if [[ -x "$manageaction" ]]; then "$manageaction" -message "$message" -title "$title" elif [[ -x "$hubcli" ]]; then - sudo "$hubcli" notify -t "$title" -i "$message" -c "Dismiss" + "$hubcli" notify -t "$title" -i "$message" -c "Dismiss" else runAsUser osascript -e "display notification \"$message\" with title \"$title\"" fi From d3390fefe6162c9006b15198f4f0d478afd949d1 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Fri, 13 May 2022 10:22:53 +0200 Subject: [PATCH 08/22] html parsing now done with xmllint, should be more resilient, maybe --- fragments/labels/adobecreativeclouddesktop.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 7445443..95582db 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -2,10 +2,11 @@ adobecreativeclouddesktop) name="Adobe Creative Cloud" #appName="Install.app" type="dmg" + adobeurl="https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" if [[ $(arch) == "arm64" ]]; then - downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*macarm64.*dmg" | cut -d '"' -f1 | head -1) + downloadURL=$(curl -fs "$adobeurl" | xmllint -html -xpath "string(//a[contains(@href,'osx10')][contains(text(),'Download')]/@href)" - 2> /dev/null) elif [[ $(arch) == "i386" ]]; then - downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*osx10.*dmg" | cut -d '"' -f1 | head -1) + downloadURL=$(curl -fs "$adobeurl" | xmllint -html -xpath "string(//a[contains(@href,'macarm64')][contains(text(),'Download')]/@href)" - 2> /dev/null) fi #downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*dmg" | head -1) appNewVersion=$(curl -fs "https://helpx.adobe.com/creative-cloud/release-note/cc-release-notes.html" | grep "mandatory" | head -1 | grep -o "Version *.* released" | cut -d " " -f2) From 2b658a576c00b6dbf1a23a3ec6687cced4b93b78 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Fri, 13 May 2022 10:44:26 +0200 Subject: [PATCH 09/22] added function for JSON parsing using JXA --- fragments/functions.sh | 12 +++++++++++- fragments/labels/firefox.sh | 3 ++- fragments/labels/firefox_da.sh | 3 ++- fragments/labels/firefox_intl.sh | 3 ++- fragments/labels/firefoxesr.sh | 3 ++- fragments/labels/firefoxesr_intl.sh | 3 ++- fragments/labels/firefoxpkg.sh | 3 ++- fragments/labels/firefoxpkg_intl.sh | 3 ++- 8 files changed, 25 insertions(+), 8 deletions(-) diff --git a/fragments/functions.sh b/fragments/functions.sh index 9e9e977..ddbe70f 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -22,7 +22,7 @@ cleanupAndExit() { # $1 = exit code, $2 message, $3 level printlog "$2" $3 fi printlog "################## End Installomator, exit code $1 \n" REQ - + # if label is wrong and we wanted name of the label, then return ################## if [[ $RETURN_LABEL_NAME -eq 1 ]]; then 1=0 # If only label name should be returned we exit without any errors @@ -199,6 +199,16 @@ xpath() { fi } +# from @Pico: https://macadmins.slack.com/archives/CGXNNJXJ9/p1652222365989229?thread_ts=1651786411.413349&cid=CGXNNJXJ9 +getJSONValue() { + # $1: JSON string OR file path to parse (tested to work with up to 1GB string and 2GB file). + # $2: JSON key path to look up (using dot or bracket notation). + printf '%s' "$1" | /usr/bin/osascript -l 'JavaScript' \ + -e "let json = $.NSString.alloc.initWithDataEncoding($.NSFileHandle.fileHandleWithStandardInput.readDataToEndOfFile$(/usr/bin/uname -r | /usr/bin/awk -F '.' '($1 > 18) { print "AndReturnError(ObjC.wrap())" }'), $.NSUTF8StringEncoding)" \ + -e 'if ($.NSFileManager.defaultManager.fileExistsAtPath(json)) json = $.NSString.stringWithContentsOfFileEncodingError(json, $.NSUTF8StringEncoding, ObjC.wrap())' \ + -e "const value = JSON.parse(json.js)$([ -n "${2%%[.[]*}" ] && echo '.')$2" \ + -e 'if (typeof value === "object") { JSON.stringify(value, null, 4) } else { value }' +} getAppVersion() { # modified by: Søren Theilgaard (@theilgaard) and Isaac Ordonez diff --git a/fragments/labels/firefox.sh b/fragments/labels/firefox.sh index 7b310e5..2ff72ab 100644 --- a/fragments/labels/firefox.sh +++ b/fragments/labels/firefox.sh @@ -2,7 +2,8 @@ firefox) name="Firefox" type="dmg" downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US" - appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep ' Date: Mon, 16 May 2022 13:24:35 -0700 Subject: [PATCH 10/22] Create googlechromeenterprise.sh --- fragments/labels/googlechromeenterprise.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 fragments/labels/googlechromeenterprise.sh diff --git a/fragments/labels/googlechromeenterprise.sh b/fragments/labels/googlechromeenterprise.sh new file mode 100644 index 0000000..9a07546 --- /dev/null +++ b/fragments/labels/googlechromeenterprise.sh @@ -0,0 +1,10 @@ +googlechromeenterprise) + name="Google Chrome" + type="pkg" + downloadURL="https://dl.google.com/dl/chrome/mac/universal/stable/gcem/GoogleChrome.pkg" + appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}') + expectedTeamID="EQHXZ8M8AV" + updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent" + updateToolArguments=( -runMode oneshot -userInitiated YES ) + updateToolRunAsCurrentUser=1 + ;; From af6ab1ae563ed53038d60fbd9e3d2716a39e5b81 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Tue, 17 May 2022 18:29:04 +0200 Subject: [PATCH 11/22] add appNewVersion to egnyte label, closes #500 --- fragments/labels/egnyte.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/fragments/labels/egnyte.sh b/fragments/labels/egnyte.sh index 185156e..3188a5d 100644 --- a/fragments/labels/egnyte.sh +++ b/fragments/labels/egnyte.sh @@ -3,6 +3,7 @@ egnyte) name="Egnyte Connect" type="pkg" downloadURL="https://egnyte-cdn.egnyte.com/egnytedrive/mac/en-us/latest/EgnyteConnectMac.pkg" + appNewVersion=$(curl -fs "https://egnyte-cdn.egnyte.com/egnytedrive/mac/en-us/versions/default.xml" | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' | cut -d '"' -f 2) expectedTeamID="FELUD555VC" blockingProcesses=( NONE ) ;; From ca73eca5f22c822f1fb329a11217f4db9d07fa38 Mon Sep 17 00:00:00 2001 From: Chris Abbs Date: Tue, 17 May 2022 12:19:30 -0500 Subject: [PATCH 12/22] edited fragment per contribution guidelines --- fragments/labels/blender.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fragments/labels/blender.sh b/fragments/labels/blender.sh index f45255e..f024a77 100644 --- a/fragments/labels/blender.sh +++ b/fragments/labels/blender.sh @@ -1,7 +1,11 @@ blender) name="blender" type="dmg" - downloadURL=$(redirect=$(curl -sfL https://www.blender.org/download/ | sed 's/.*href="//' | sed 's/".*//' | grep .dmg) && curl -sfL "$redirect" | sed 's/.*href="//' | sed 's/".*//' | grep -m1 .dmg) + if [[ $(arch) == "arm64" ]]; then + downloadURL=$(curl -sfL "https://www.blender.org/download/" | xmllint --html --format - 2>/dev/null | grep -o "https://.*blender.*arm64.*.dmg" | sed '2p;d' | sed 's/www.blender.org\/download/download.blender.org/g') + elif [[ $(arch) == "i386" ]]; then + downloadURL=$(curl -sfL "https://www.blender.org/download/" | xmllint --html --format - 2>/dev/null | grep -o "https://.*blender.*x64.*.dmg" | sed '2p;d' | sed 's/www.blender.org\/download/download.blender.org/g') + fi appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-.*/\1/g' ) expectedTeamID="68UA947AUU" ;; From 8789d2cd752cc7ba06d63277a6f808b7cd784bd8 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 18 May 2022 10:14:57 +0200 Subject: [PATCH 13/22] updated miro for arm download, closes #475 --- fragments/labels/miro.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fragments/labels/miro.sh b/fragments/labels/miro.sh index 284261d..d6a2bf6 100644 --- a/fragments/labels/miro.sh +++ b/fragments/labels/miro.sh @@ -2,6 +2,10 @@ miro) # credit: @matins name="Miro" type="dmg" - downloadURL="https://desktop.miro.com/platforms/darwin/Miro.dmg" + if [[ $(arch) == arm64 ]]; then + downloadURL="https://desktop.miro.com/platforms/darwin-arm64/Miro.dmg" + elif [[ $(arch) == i386 ]]; then + downloadURL="https://desktop.miro.com/platforms/darwin/Miro.dmg" + fi expectedTeamID="M3GM7MFY7U" ;; From b99c2619f4ac8e6b1556e91fc5b0802463eb1637 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 18 May 2022 10:36:39 +0200 Subject: [PATCH 14/22] updated assemble.sh to update Labels.txt when building script --- utils/assemble.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utils/assemble.sh b/utils/assemble.sh index 7531173..834a0c1 100755 --- a/utils/assemble.sh +++ b/utils/assemble.sh @@ -127,6 +127,8 @@ if [[ $buildScript -eq 1 ]]; then echo "# copying script to $repo_dir/Installomator.sh" cp $destination_file $repo_dir/Installomator.sh chmod 755 $repo_dir/Installomator.sh + # also update Labels.txt + $repo_dir/Installomator.sh | tail -n +2 > $repo_dir/Labels.txt fi # build a pkg when flag is set From 3ccc9dc93e85944467472776e2d9523260b07592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 18 May 2022 15:23:52 +0200 Subject: [PATCH 15/22] `versionKey` added to the labels. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Output: ``` ➜ Installomator/utils/assemble.sh marathoninfinity DEBUG=0 2022-05-18 15:21:53 : WARN : marathoninfinity : setting variable from argument DEBUG=0 2022-05-18 15:21:53 : REQ : marathoninfinity : ################## Start Installomator v. 10.0beta, date 2022-05-18 2022-05-18 15:21:53 : INFO : marathoninfinity : ################## Version: 10.0beta 2022-05-18 15:21:53 : INFO : marathoninfinity : ################## Date: 2022-05-18 2022-05-18 15:21:53 : INFO : marathoninfinity : ################## marathoninfinity 2022-05-18 15:21:53 : INFO : marathoninfinity : BLOCKING_PROCESS_ACTION=tell_user 2022-05-18 15:21:53 : INFO : marathoninfinity : NOTIFY=success 2022-05-18 15:21:53 : INFO : marathoninfinity : LOGGING=INFO 2022-05-18 15:21:53 : INFO : marathoninfinity : LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2022-05-18 15:21:53 : INFO : marathoninfinity : Label type: dmg 2022-05-18 15:21:53 : INFO : marathoninfinity : archiveName: MarathonInfinity-[0-9.]*-Mac.dmg 2022-05-18 15:21:53 : INFO : marathoninfinity : no blocking processes defined, using Marathon Infinity as default 2022-05-18 15:21:53 : INFO : marathoninfinity : App(s) found: /Applications/Marathon Infinity.app 2022-05-18 15:21:53 : INFO : marathoninfinity : found app at /Applications/Marathon Infinity.app, version 20220115, on versionKey CFBundleVersion 2022-05-18 15:21:53 : INFO : marathoninfinity : appversion: 20220115 2022-05-18 15:21:53 : INFO : marathoninfinity : Latest version of Marathon Infinity is 20220115 2022-05-18 15:21:53 : INFO : marathoninfinity : There is no newer version available. 2022-05-18 15:21:53 : INFO : marathoninfinity : App not closed, so no reopen. 2022-05-18 15:21:53 : REQ : marathoninfinity : No newer version. 2022-05-18 15:21:53 : REQ : marathoninfinity : ################## End Installomator, exit code 0 ➜ Installomator/utils/assemble.sh marathon DEBUG=0 2022-05-18 15:22:04 : WARN : marathon : setting variable from argument DEBUG=0 2022-05-18 15:22:04 : REQ : marathon : ################## Start Installomator v. 10.0beta, date 2022-05-18 2022-05-18 15:22:04 : INFO : marathon : ################## Version: 10.0beta 2022-05-18 15:22:04 : INFO : marathon : ################## Date: 2022-05-18 2022-05-18 15:22:04 : INFO : marathon : ################## marathon 2022-05-18 15:22:04 : INFO : marathon : BLOCKING_PROCESS_ACTION=tell_user 2022-05-18 15:22:04 : INFO : marathon : NOTIFY=success 2022-05-18 15:22:04 : INFO : marathon : LOGGING=INFO 2022-05-18 15:22:04 : INFO : marathon : LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2022-05-18 15:22:04 : INFO : marathon : Label type: dmg 2022-05-18 15:22:04 : INFO : marathon : archiveName: Marathon-[0-9.]*-Mac.dmg 2022-05-18 15:22:04 : INFO : marathon : no blocking processes defined, using Marathon as default 2022-05-18 15:22:04 : INFO : marathon : App(s) found: /Applications/Marathon.app 2022-05-18 15:22:04 : INFO : marathon : found app at /Applications/Marathon.app, version 20220115, on versionKey CFBundleVersion 2022-05-18 15:22:04 : INFO : marathon : appversion: 20220115 2022-05-18 15:22:04 : INFO : marathon : Latest version of Marathon is 20220115 2022-05-18 15:22:04 : INFO : marathon : There is no newer version available. 2022-05-18 15:22:04 : INFO : marathon : App not closed, so no reopen. 2022-05-18 15:22:04 : REQ : marathon : No newer version. 2022-05-18 15:22:04 : REQ : marathon : ################## End Installomator, exit code 0 ➜ Installomator/utils/assemble.sh marathon2 DEBUG=0 2022-05-18 15:22:08 : WARN : marathon2 : setting variable from argument DEBUG=0 2022-05-18 15:22:08 : REQ : marathon2 : ################## Start Installomator v. 10.0beta, date 2022-05-18 2022-05-18 15:22:08 : INFO : marathon2 : ################## Version: 10.0beta 2022-05-18 15:22:08 : INFO : marathon2 : ################## Date: 2022-05-18 2022-05-18 15:22:08 : INFO : marathon2 : ################## marathon2 2022-05-18 15:22:08 : INFO : marathon2 : BLOCKING_PROCESS_ACTION=tell_user 2022-05-18 15:22:08 : INFO : marathon2 : NOTIFY=success 2022-05-18 15:22:08 : INFO : marathon2 : LOGGING=INFO 2022-05-18 15:22:08 : INFO : marathon2 : LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2022-05-18 15:22:08 : INFO : marathon2 : Label type: dmg 2022-05-18 15:22:08 : INFO : marathon2 : archiveName: Marathon2-[0-9.]*-Mac.dmg 2022-05-18 15:22:08 : INFO : marathon2 : no blocking processes defined, using Marathon 2 as default 2022-05-18 15:22:08 : INFO : marathon2 : App(s) found: /Applications/Marathon 2.app 2022-05-18 15:22:08 : INFO : marathon2 : found app at /Applications/Marathon 2.app, version 20220115, on versionKey CFBundleVersion 2022-05-18 15:22:08 : INFO : marathon2 : appversion: 20220115 2022-05-18 15:22:08 : INFO : marathon2 : Latest version of Marathon 2 is 20220115 2022-05-18 15:22:08 : INFO : marathon2 : There is no newer version available. 2022-05-18 15:22:08 : INFO : marathon2 : App not closed, so no reopen. 2022-05-18 15:22:08 : REQ : marathon2 : No newer version. 2022-05-18 15:22:08 : REQ : marathon2 : ################## End Installomator, exit code 0 ``` --- fragments/labels/marathon.sh | 1 + fragments/labels/marathon2.sh | 1 + fragments/labels/marathoninfinity.sh | 1 + 3 files changed, 3 insertions(+) diff --git a/fragments/labels/marathon.sh b/fragments/labels/marathon.sh index 75f5799..c45c597 100644 --- a/fragments/labels/marathon.sh +++ b/fragments/labels/marathon.sh @@ -2,6 +2,7 @@ marathon) name="Marathon" type="dmg" archiveName="Marathon-[0-9.]*-Mac.dmg" + versionKey="CFBundleVersion" downloadURL="$(downloadURLFromGit Aleph-One-Marathon alephone)" appNewVersion="$(versionFromGit Aleph-One-Marathon alephone)" expectedTeamID="E8K89CXZE7" diff --git a/fragments/labels/marathon2.sh b/fragments/labels/marathon2.sh index 02440fa..64114eb 100644 --- a/fragments/labels/marathon2.sh +++ b/fragments/labels/marathon2.sh @@ -2,6 +2,7 @@ marathon2) name="Marathon 2" type="dmg" archiveName="Marathon2-[0-9.]*-Mac.dmg" + versionKey="CFBundleVersion" downloadURL="$(downloadURLFromGit Aleph-One-Marathon alephone)" appNewVersion="$(versionFromGit Aleph-One-Marathon alephone)" expectedTeamID="E8K89CXZE7" diff --git a/fragments/labels/marathoninfinity.sh b/fragments/labels/marathoninfinity.sh index a9b5165..388fbb9 100644 --- a/fragments/labels/marathoninfinity.sh +++ b/fragments/labels/marathoninfinity.sh @@ -2,6 +2,7 @@ marathoninfinity) name="Marathon Infinity" type="dmg" archiveName="MarathonInfinity-[0-9.]*-Mac.dmg" + versionKey="CFBundleVersion" downloadURL="$(downloadURLFromGit Aleph-One-Marathon alephone)" appNewVersion="$(versionFromGit Aleph-One-Marathon alephone)" expectedTeamID="E8K89CXZE7" From f8b91946c64f9c1b4653d4d35e3de6a0228645bb Mon Sep 17 00:00:00 2001 From: Fletcher Salesky Date: Thu, 19 May 2022 21:35:27 -0700 Subject: [PATCH 16/22] Create mmhmm.sh --- fragments/labels/mmhmm.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 fragments/labels/mmhmm.sh diff --git a/fragments/labels/mmhmm.sh b/fragments/labels/mmhmm.sh new file mode 100644 index 0000000..0ef52b2 --- /dev/null +++ b/fragments/labels/mmhmm.sh @@ -0,0 +1,8 @@ +mmhmm) + name="mmhmm" + type="pkg" + downloadURL="https://updates.mmhmm.app/mac/mmhmm.pkg" + curlOptions=( -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" ) + appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://help.mmhmm.app/hc/en-us/articles/4420969712151-mmhmm-for-Mac" | grep 'The latest version of mmhmm for Mac is *' | sed -e 's/.*\\(.*\)\.\<\/strong\>.*/\1/') + expectedTeamID="M3KUT44L48" + ;; From e56be4f18a2637bdfc8e16e7bcba9ac4b2c99844 Mon Sep 17 00:00:00 2001 From: Fletcher Salesky Date: Fri, 20 May 2022 19:31:58 -0700 Subject: [PATCH 17/22] Update ringcentralapp.sh --- fragments/labels/ringcentralapp.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fragments/labels/ringcentralapp.sh b/fragments/labels/ringcentralapp.sh index fbd047e..dd052d3 100644 --- a/fragments/labels/ringcentralapp.sh +++ b/fragments/labels/ringcentralapp.sh @@ -1,6 +1,6 @@ ringcentralapp) # credit: Isaac Ordonez, Mann consulting (@mannconsulting) - name="Ringcentral" + name="RingCentral" type="pkg" if [[ $(arch) != "i386" ]]; then downloadURL="https://app.ringcentral.com/download/RingCentral-arm64.pkg" @@ -8,5 +8,5 @@ ringcentralapp) downloadURL="https://app.ringcentral.com/download/RingCentral.pkg" fi expectedTeamID="M932RC5J66" - blockingProcesses=( "Ringcentral" ) + blockingProcesses=( "RingCentral" ) ;; From c219f38459aa92ebc8670fc858904ff1eeb7b7f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 25 May 2022 13:26:37 +0200 Subject: [PATCH 18/22] Create barcoclickshare.sh --- fragments/labels/barcoclickshare.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/barcoclickshare.sh diff --git a/fragments/labels/barcoclickshare.sh b/fragments/labels/barcoclickshare.sh new file mode 100644 index 0000000..1b99cd0 --- /dev/null +++ b/fragments/labels/barcoclickshare.sh @@ -0,0 +1,7 @@ +barcoclickshare) + name="ClickShare" + type="appInDmgInZip" + downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )" + appNewVersion="$(eval "$( echo $downloadURL | sed -E 's/.*(MajorVersion.*BuildVersion=[0-9]*).*/\1/' | sed 's/&//g' )" ; ((MajorVersion++)) ; ((MajorVersion--)); ((MinorVersion++)) ; ((MinorVersion--)); ((PatchVersion++)) ; ((PatchVersion--)); ((BuildVersion++)) ; ((BuildVersion--)); echo "${MajorVersion}.${MinorVersion}.${PatchVersion}-b${BuildVersion}")" + expectedTeamID="P6CDJZR997" + ;; From 7b4b1d12d14b1aae09c7ebaf64a6d7f7c18bdaa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 25 May 2022 14:03:51 +0200 Subject: [PATCH 19/22] WhatRoute label A network utility: ``` Installomator/utils/assemble.sh whatroute 2022-05-25 13:46:54 : REQ : whatroute : ################## Start Installomator v. 10.0beta, date 2022-05-25 2022-05-25 13:46:54 : INFO : whatroute : ################## Version: 10.0beta 2022-05-25 13:46:54 : INFO : whatroute : ################## Date: 2022-05-25 2022-05-25 13:46:54 : INFO : whatroute : ################## whatroute 2022-05-25 13:46:54 : DEBUG : whatroute : DEBUG mode 1 enabled. 2022-05-25 13:46:58 : INFO : whatroute : BLOCKING_PROCESS_ACTION=tell_user 2022-05-25 13:46:58 : INFO : whatroute : NOTIFY=success 2022-05-25 13:46:58 : INFO : whatroute : LOGGING=DEBUG 2022-05-25 13:46:58 : INFO : whatroute : LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2022-05-25 13:46:58 : INFO : whatroute : Label type: zip 2022-05-25 13:46:58 : INFO : whatroute : archiveName: WhatRoute.zip 2022-05-25 13:46:58 : INFO : whatroute : no blocking processes defined, using WhatRoute as default 2022-05-25 13:46:58 : DEBUG : whatroute : Changing directory to /Users/st/Documents/GitHub/Installomator/build 2022-05-25 13:46:58 : INFO : whatroute : App(s) found: /Applications/WhatRoute.app 2022-05-25 13:46:58 : INFO : whatroute : found app at /Applications/WhatRoute.app, version 2.5.0, on versionKey CFBundleShortVersionString 2022-05-25 13:46:58 : INFO : whatroute : appversion: 2.5.0 2022-05-25 13:46:58 : INFO : whatroute : Latest version of WhatRoute is 2.5.0 2022-05-25 13:46:58 : WARN : whatroute : DEBUG mode 1 enabled, not exiting, but there is no new version of app. 2022-05-25 13:46:58 : REQ : whatroute : Downloading https://www.whatroute.net/software/whatroute-2.5.0.zip to WhatRoute.zip 2022-05-25 13:47:18 : DEBUG : whatroute : File list: -rw-r--r-- 1 st staff 38M May 25 13:47 WhatRoute.zip 2022-05-25 13:47:18 : DEBUG : whatroute : File type: WhatRoute.zip: Zip archive data, at least v1.0 to extract, compression method=store 2022-05-25 13:47:18 : DEBUG : whatroute : curl output was: * Trying 222.154.233.147:443... * Connected to www.whatroute.net (222.154.233.147) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem * CApath: none * (304) (OUT), TLS handshake, Client hello (1): } [322 bytes data] * (304) (IN), TLS handshake, Server hello (2): { [122 bytes data] * (304) (IN), TLS handshake, Unknown (8): { [25 bytes data] * (304) (IN), TLS handshake, Certificate (11): { [4423 bytes data] * (304) (IN), TLS handshake, CERT verify (15): { [264 bytes data] * (304) (IN), TLS handshake, Finished (20): { [36 bytes data] * (304) (OUT), TLS handshake, Finished (20): } [36 bytes data] * SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 * ALPN, server accepted to use http/1.1 * Server certificate: * subject: CN=bryanc.co.nz * start date: May 15 06:02:07 2022 GMT * expire date: Aug 13 06:02:06 2022 GMT * subjectAltName: host "www.whatroute.net" matched cert's "www.whatroute.net" * issuer: C=US; O=Let's Encrypt; CN=R3 * SSL certificate verify ok. > GET /software/whatroute-2.5.0.zip HTTP/1.1 > Host: www.whatroute.net > User-Agent: curl/7.79.1 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 200 OK < Date: Wed, 25 May 2022 11:46:59 GMT < Server: Apache < Last-Modified: Thu, 31 Mar 2022 01:31:34 GMT < ETag: "2586bfd-5db799f55fabc" < Accept-Ranges: bytes < Content-Length: 39349245 < Content-Type: application/zip < { [7964 bytes data] * Connection #0 to host www.whatroute.net left intact 2022-05-25 13:47:18 : DEBUG : whatroute : DEBUG mode 1, not checking for blocking processes 2022-05-25 13:47:18 : REQ : whatroute : Installing WhatRoute 2022-05-25 13:47:18 : INFO : whatroute : Unzipping WhatRoute.zip 2022-05-25 13:47:19 : INFO : whatroute : Verifying: /Users/st/Documents/GitHub/Installomator/build/WhatRoute.app 2022-05-25 13:47:19 : DEBUG : whatroute : App size: 60M /Users/st/Documents/GitHub/Installomator/build/WhatRoute.app 2022-05-25 13:47:19 : DEBUG : whatroute : Debugging enabled, App Verification output was: /Users/st/Documents/GitHub/Installomator/build/WhatRoute.app: accepted source=Notarized Developer ID origin=Developer ID Application: Bryan Christianson (H5879E8LML) 2022-05-25 13:47:20 : INFO : whatroute : Team ID matching: H5879E8LML (expected: H5879E8LML ) 2022-05-25 13:47:20 : INFO : whatroute : Downloaded version of WhatRoute is 2.5.0 on versionKey CFBundleShortVersionString, same as installed. 2022-05-25 13:47:20 : DEBUG : whatroute : DEBUG mode 1, not reopening anything 2022-05-25 13:47:20 : REG : whatroute : No new version to install 2022-05-25 13:47:20 : REQ : whatroute : ################## End Installomator, exit code 0 ``` --- fragments/labels/whatroute.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/whatroute.sh diff --git a/fragments/labels/whatroute.sh b/fragments/labels/whatroute.sh new file mode 100644 index 0000000..2577a23 --- /dev/null +++ b/fragments/labels/whatroute.sh @@ -0,0 +1,7 @@ +whatroute) + name="WhatRoute" + type="zip" + downloadURL="$(curl -fs https://www.whatroute.net/whatroute2appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | cut -d '"' -f2)" + appNewVersion="$(curl -fs https://www.whatroute.net/whatroute2appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | cut -d '"' -f2)" + expectedTeamID="H5879E8LML" + ;; From 9e24f2b8e8603e4c6b40bb4dfa4a59cbe49f8d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 27 May 2022 12:18:18 +0200 Subject: [PATCH 20/22] rename label name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It already existed… --- fragments/labels/barcoclickshare.sh | 7 ------- fragments/labels/clickshare.sh | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 fragments/labels/barcoclickshare.sh diff --git a/fragments/labels/barcoclickshare.sh b/fragments/labels/barcoclickshare.sh deleted file mode 100644 index 1b99cd0..0000000 --- a/fragments/labels/barcoclickshare.sh +++ /dev/null @@ -1,7 +0,0 @@ -barcoclickshare) - name="ClickShare" - type="appInDmgInZip" - downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )" - appNewVersion="$(eval "$( echo $downloadURL | sed -E 's/.*(MajorVersion.*BuildVersion=[0-9]*).*/\1/' | sed 's/&//g' )" ; ((MajorVersion++)) ; ((MajorVersion--)); ((MinorVersion++)) ; ((MinorVersion--)); ((PatchVersion++)) ; ((PatchVersion--)); ((BuildVersion++)) ; ((BuildVersion--)); echo "${MajorVersion}.${MinorVersion}.${PatchVersion}-b${BuildVersion}")" - expectedTeamID="P6CDJZR997" - ;; diff --git a/fragments/labels/clickshare.sh b/fragments/labels/clickshare.sh index 6911551..1b0221b 100644 --- a/fragments/labels/clickshare.sh +++ b/fragments/labels/clickshare.sh @@ -1,7 +1,7 @@ clickshare) - # credit: Søren Theilgaard (@theilgaard) name="ClickShare" type="appInDmgInZip" - downloadURL=https://www.barco.com$(curl -fs "https://www.barco.com/en/clickshare/app" | grep -E -o '(\/\S*Download\?FileNumber=R3306192\S*ShowDownloadPage=False)' | tail -1) + downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )" + appNewVersion="$(eval "$( echo $downloadURL | sed -E 's/.*(MajorVersion.*BuildVersion=[0-9]*).*/\1/' | sed 's/&//g' )" ; ((MajorVersion++)) ; ((MajorVersion--)); ((MinorVersion++)) ; ((MinorVersion--)); ((PatchVersion++)) ; ((PatchVersion--)); ((BuildVersion++)) ; ((BuildVersion--)); echo "${MajorVersion}.${MinorVersion}.${PatchVersion}-b${BuildVersion}")" expectedTeamID="P6CDJZR997" ;; From 5e0e77c346e64d96ba88d182d1ae17c971576cef Mon Sep 17 00:00:00 2001 From: Fletcher Salesky Date: Tue, 31 May 2022 19:42:57 -0700 Subject: [PATCH 21/22] Update notion.sh --- fragments/labels/notion.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fragments/labels/notion.sh b/fragments/labels/notion.sh index aa1ab0a..7e608e8 100644 --- a/fragments/labels/notion.sh +++ b/fragments/labels/notion.sh @@ -4,9 +4,10 @@ notion) type="dmg" if [[ $(arch) == "arm64" ]]; then downloadURL="https://www.notion.so/desktop/apple-silicon/download" + appNewVersion=$( curl -fsIL "https://www.notion.so/desktop/apple-silicon/download" | grep -i "^location" | awk '{print $2}' | sed -e 's/.*Notion\-\(.*\)\-arm64.dmg.*/\1/' ) elif [[ $(arch) == "i386" ]]; then downloadURL="https://www.notion.so/desktop/mac/download" + appNewVersion=$( curl -fsIL "https://www.notion.so/desktop/mac/download" | grep -i "^location" | awk '{print $2}' | sed -e 's/.*Notion\-\(.*\).dmg.*/\1/' ) fi - appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | tr -d '\r\n' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' ) expectedTeamID="LBQJ96FQ8D" ;; From acb2963f7a6b747ba0af58985bdb99e28a2d444b Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 22 Jun 2022 14:55:10 +0200 Subject: [PATCH 22/22] changed filename case --- fragments/labels/{NordLayer.sh => nordlayer.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename fragments/labels/{NordLayer.sh => nordlayer.sh} (100%) diff --git a/fragments/labels/NordLayer.sh b/fragments/labels/nordlayer.sh similarity index 100% rename from fragments/labels/NordLayer.sh rename to fragments/labels/nordlayer.sh