From 9dbac456218fc58e1e2eaecf9e8442b521fe61c5 Mon Sep 17 00:00:00 2001 From: John Hutchison Date: Tue, 21 Sep 2021 10:54:59 -0400 Subject: [PATCH 01/16] Fix Jabra Direct --- fragments/labels/jabradirect.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/jabradirect.sh b/fragments/labels/jabradirect.sh index ce025ea..e0b789b 100644 --- a/fragments/labels/jabradirect.sh +++ b/fragments/labels/jabradirect.sh @@ -1,6 +1,6 @@ jabradirect) name="Jabra Direct" - type="dmg" + type="pkgInDmg" downloadURL="https://jabraxpressonlineprdstor.blob.core.windows.net/jdo/JabraDirectSetup.dmg" expectedTeamID="55LV32M29R" appNewVersion=$(curl -fs https://www.jabra.com/Support/release-notes/release-note-jabra-direct | grep -o "Jabra Direct macOS:*.*<" | head -1 | cut -d ":" -f2 | cut -d " " -f2 | cut -d "<" -f1) From e8464c5c47effc98b8a9a141ca6e307c040e33c3 Mon Sep 17 00:00:00 2001 From: John Hutchison Date: Tue, 21 Sep 2021 10:55:22 -0400 Subject: [PATCH 02/16] New Labels New lablels for Jamf Connect Confifugration, Tag Editor, and ToM4AConverter --- fragments/labels/jamfconnectconfiguration.sh | 6 ++++++ fragments/labels/tageditor.sh | 7 +++++++ fragments/labels/tom4aconverter.sh | 7 +++++++ 3 files changed, 20 insertions(+) create mode 100644 fragments/labels/jamfconnectconfiguration.sh create mode 100644 fragments/labels/tageditor.sh create mode 100644 fragments/labels/tom4aconverter.sh diff --git a/fragments/labels/jamfconnectconfiguration.sh b/fragments/labels/jamfconnectconfiguration.sh new file mode 100644 index 0000000..7237f2e --- /dev/null +++ b/fragments/labels/jamfconnectconfiguration.sh @@ -0,0 +1,6 @@ +jamfconnectconfiguration) + name="Jamf Connect Configuration" + type="dmg" + downloadURL="https://files.jamfconnect.com/JamfConnect.dmg" + expectedTeamID="483DWKW443" + ;; diff --git a/fragments/labels/tageditor.sh b/fragments/labels/tageditor.sh new file mode 100644 index 0000000..a3af5bf --- /dev/null +++ b/fragments/labels/tageditor.sh @@ -0,0 +1,7 @@ +tageditor) + name"Tag Editor" + type="dmg" + downloadURL="https://amvidia.com/downloads/tag-editor-mac.dmg" + appNewVersion="curl -sf "https://amvidia.com/tag-editor" | grep -o -E '"softwareVersion":.'"{8}" | sed 's/\"//g' | awk -F ': ' '{print $2}'" + expectedTeamID="F2TH9XX9CJ" + ;; diff --git a/fragments/labels/tom4aconverter.sh b/fragments/labels/tom4aconverter.sh new file mode 100644 index 0000000..bba86c0 --- /dev/null +++ b/fragments/labels/tom4aconverter.sh @@ -0,0 +1,7 @@ +tom4aconverter) + name"To M4A Converter" + type="dmg" + downloadURL="https://amvidia.com/downloads/to-m4a-converter-mac.dmg" + appNewVersion="curl -sf "https://amvidia.com/to-m4a-converter" | grep -o -E '"softwareVersion":.'"{8}" | sed 's/\"//g' | awk -F ': ' '{print $2}'" + expectedTeamID="F2TH9XX9CJ" + ;; From 5799c5d4323d349fe7ba7b3b4e39a98dfa3da8f6 Mon Sep 17 00:00:00 2001 From: Jake Date: Wed, 6 Oct 2021 11:48:51 -0400 Subject: [PATCH 03/16] create perimeter81.sh --- fragments/labels/perimeter81.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/perimeter81.sh diff --git a/fragments/labels/perimeter81.sh b/fragments/labels/perimeter81.sh new file mode 100644 index 0000000..44690e2 --- /dev/null +++ b/fragments/labels/perimeter81.sh @@ -0,0 +1,7 @@ +perimeter81) + name="Perimeter81" + type="pkg" + downloadURL="https://static.perimeter81.com/agents/mac/snapshot/latest/Perimeter81.pkg" + appNewVersion="curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //'" + expectedTeamID="924635PD62" + ;; From 8e9488c68fa8b9c986bc479659d475669f22763a Mon Sep 17 00:00:00 2001 From: Jake Date: Wed, 6 Oct 2021 15:26:32 -0400 Subject: [PATCH 04/16] update appNewVersion for Perimeter81 --- fragments/labels/perimeter81.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/perimeter81.sh b/fragments/labels/perimeter81.sh index 44690e2..03473b0 100644 --- a/fragments/labels/perimeter81.sh +++ b/fragments/labels/perimeter81.sh @@ -2,6 +2,6 @@ perimeter81) name="Perimeter81" type="pkg" downloadURL="https://static.perimeter81.com/agents/mac/snapshot/latest/Perimeter81.pkg" - appNewVersion="curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //'" + appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //')" expectedTeamID="924635PD62" ;; From 9edc256caa6410f82c1cf37a51fb5e1a9983206c Mon Sep 17 00:00:00 2001 From: Jake Date: Wed, 6 Oct 2021 15:59:06 -0400 Subject: [PATCH 05/16] fix typo in name --- fragments/labels/perimeter81.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/perimeter81.sh b/fragments/labels/perimeter81.sh index 03473b0..f83dc93 100644 --- a/fragments/labels/perimeter81.sh +++ b/fragments/labels/perimeter81.sh @@ -1,5 +1,5 @@ perimeter81) - name="Perimeter81" + name="Perimeter 81" type="pkg" downloadURL="https://static.perimeter81.com/agents/mac/snapshot/latest/Perimeter81.pkg" appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //')" From b0ed6432f6db8fa5c4aedcbfa0681ed337a5e4ca Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 7 Oct 2021 10:55:00 -0400 Subject: [PATCH 06/16] fix version compare --- fragments/labels/perimeter81.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/perimeter81.sh b/fragments/labels/perimeter81.sh index f83dc93..353b0fb 100644 --- a/fragments/labels/perimeter81.sh +++ b/fragments/labels/perimeter81.sh @@ -2,6 +2,6 @@ perimeter81) name="Perimeter 81" type="pkg" downloadURL="https://static.perimeter81.com/agents/mac/snapshot/latest/Perimeter81.pkg" - appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //')" + appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //' | cut -d"." -f1-3))" expectedTeamID="924635PD62" ;; From 97ec3efedb4ef2082301b4423133ddb948c60539 Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 7 Oct 2021 11:18:13 -0400 Subject: [PATCH 07/16] update download url The download url was displaying all mirrors, this will pull just the first one. --- fragments/labels/blender.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/blender.sh b/fragments/labels/blender.sh index 3a822ef..a2372c6 100644 --- a/fragments/labels/blender.sh +++ b/fragments/labels/blender.sh @@ -1,7 +1,7 @@ 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 .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 .dmg | head -n 1) appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-.*/\1/g' ) expectedTeamID="68UA947AUU" ;; From f16ee55ed6114c1c55317e74fc97d93860230e1b Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 7 Oct 2021 13:20:34 -0400 Subject: [PATCH 08/16] Revert "update download url" This reverts commit 97ec3efedb4ef2082301b4423133ddb948c60539. --- fragments/labels/blender.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/blender.sh b/fragments/labels/blender.sh index a2372c6..3a822ef 100644 --- a/fragments/labels/blender.sh +++ b/fragments/labels/blender.sh @@ -1,7 +1,7 @@ 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 .dmg | head -n 1) + 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 .dmg) appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-.*/\1/g' ) expectedTeamID="68UA947AUU" ;; From 7c0a4ef04ab3ea61c6c85e62a7be257ea448d2f2 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Wed, 13 Oct 2021 16:07:19 +0200 Subject: [PATCH 09/16] updated jetbrains labels to new format derived from #253 --- fragments/labels/jetbrainsclion.sh | 12 ++++++++++++ fragments/labels/jetbrainsdatagrip.sh | 12 +++++++----- fragments/labels/jetbrainsintellijidea.sh | 8 +++++++- fragments/labels/jetbrainsintellijideace.sh | 8 +++++++- fragments/labels/jetbrainsphpstorm.sh | 8 +++++++- fragments/labels/jetbrainspycharm.sh | 9 +++++---- fragments/labels/jetbrainspycharmce.sh | 9 +++++---- fragments/labels/jetbrainstoolbox.sh | 9 +++++---- fragments/labels/jetbrainswebstorm.sh | 12 ++++++++++++ 9 files changed, 67 insertions(+), 20 deletions(-) create mode 100644 fragments/labels/jetbrainsclion.sh create mode 100644 fragments/labels/jetbrainswebstorm.sh diff --git a/fragments/labels/jetbrainsclion.sh b/fragments/labels/jetbrainsclion.sh new file mode 100644 index 0000000..8acbd1e --- /dev/null +++ b/fragments/labels/jetbrainsclion.sh @@ -0,0 +1,12 @@ +jetbrainsclion) + name="CLion" + type="dmg" + jetbrainscode="CL" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) + expectedTeamID="2ZEFAR8TH3" + ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainsdatagrip.sh b/fragments/labels/jetbrainsdatagrip.sh index 87a77f3..5dcf642 100644 --- a/fragments/labels/jetbrainsdatagrip.sh +++ b/fragments/labels/jetbrainsdatagrip.sh @@ -1,11 +1,13 @@ jetbrainsdatagrip) name="DataGrip" type="dmg" - appNewVersion=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o 'version*.*,' | cut -d '"' -f3) - if [[ $(arch) == "arm64" ]]; then - downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o 'macM1*.*,' | cut -d '"' -f5) - elif [[ $(arch) == "i386" ]]; then - downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o 'mac*.*,' | cut -d '"' -f5) + jetbrainscode="DG" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainsintellijidea.sh b/fragments/labels/jetbrainsintellijidea.sh index 233eda9..51cd19f 100644 --- a/fragments/labels/jetbrainsintellijidea.sh +++ b/fragments/labels/jetbrainsintellijidea.sh @@ -1,7 +1,13 @@ jetbrainsintellijidea) name="IntelliJ IDEA" type="dmg" - downloadURL="https://download.jetbrains.com/product?code=II&latest&distribution=mac" + jetbrainscode="II" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainsintellijideace.sh b/fragments/labels/jetbrainsintellijideace.sh index 7675050..2b1b8e4 100644 --- a/fragments/labels/jetbrainsintellijideace.sh +++ b/fragments/labels/jetbrainsintellijideace.sh @@ -2,7 +2,13 @@ jetbrainsintellijideace|\ intellijideace) name="IntelliJ IDEA CE" type="dmg" - downloadURL="https://download.jetbrains.com/product?code=IIC&latest&distribution=mac" + jetbrainscode="IIC" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainsphpstorm.sh b/fragments/labels/jetbrainsphpstorm.sh index 98e7773..541246c 100644 --- a/fragments/labels/jetbrainsphpstorm.sh +++ b/fragments/labels/jetbrainsphpstorm.sh @@ -1,7 +1,13 @@ jetbrainsphpstorm) name="PHPStorm" type="dmg" - downloadURL="https://download.jetbrains.com/product?code=PS&latest&distribution=mac" + jetbrainscode="PS" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainspycharm.sh b/fragments/labels/jetbrainspycharm.sh index 18670a1..10535ff 100644 --- a/fragments/labels/jetbrainspycharm.sh +++ b/fragments/labels/jetbrainspycharm.sh @@ -2,11 +2,12 @@ jetbrainspycharm) # This is the Pro version of PyCharm. Do not confuse with PyCharm CE. name="PyCharm" type="dmg" - if [[ $(arch) == i386 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCP&latest&distribution=mac" - elif [[ $(arch) == arm64 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCP&latest&distribution=macM1" + jetbrainscode="PCP" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainspycharmce.sh b/fragments/labels/jetbrainspycharmce.sh index 8d738a1..646539b 100644 --- a/fragments/labels/jetbrainspycharmce.sh +++ b/fragments/labels/jetbrainspycharmce.sh @@ -2,11 +2,12 @@ jetbrainspycharmce|\ pycharmce) name="PyCharm CE" type="dmg" - if [[ $(arch) == i386 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCC&latest&distribution=mac" - elif [[ $(arch) == arm64 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCC&latest&distribution=macM1" + jetbrainscode="PCC" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainstoolbox.sh b/fragments/labels/jetbrainstoolbox.sh index 16bef78..49e5046 100644 --- a/fragments/labels/jetbrainstoolbox.sh +++ b/fragments/labels/jetbrainstoolbox.sh @@ -1,11 +1,12 @@ jetbrainstoolbox) name="JetBrains Toolbox" type="dmg" - if [[ $(arch) == i386 ]]; then - downloadURL="https://download.jetbrains.com/product?code=TB&latest&distribution=mac" - elif [[ $(arch) == arm64 ]]; then - downloadURL="https://download.jetbrains.com/product?code=TB&latest&distribution=macM1" + jetbrainscode="TBA" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; \ No newline at end of file diff --git a/fragments/labels/jetbrainswebstorm.sh b/fragments/labels/jetbrainswebstorm.sh new file mode 100644 index 0000000..65bb473 --- /dev/null +++ b/fragments/labels/jetbrainswebstorm.sh @@ -0,0 +1,12 @@ +jetbrainswebstorm) + name="Webstorm" + type="dmg" + jetbrainscode="WS" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) + expectedTeamID="2ZEFAR8TH3" + ;; \ No newline at end of file From 796f8a4e25c9de6a356aafe1c7951b998fac6262 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:57:20 +0200 Subject: [PATCH 10/16] fix issues with tageditor and tom4aconverter labels --- fragments/labels/tageditor.sh | 4 ++-- fragments/labels/tom4aconverter.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fragments/labels/tageditor.sh b/fragments/labels/tageditor.sh index a3af5bf..666284c 100644 --- a/fragments/labels/tageditor.sh +++ b/fragments/labels/tageditor.sh @@ -1,7 +1,7 @@ tageditor) - name"Tag Editor" + name="Tag Editor" type="dmg" downloadURL="https://amvidia.com/downloads/tag-editor-mac.dmg" - appNewVersion="curl -sf "https://amvidia.com/tag-editor" | grep -o -E '"softwareVersion":.'"{8}" | sed 's/\"//g' | awk -F ': ' '{print $2}'" + appNewVersion=curl -sf "https://amvidia.com/tag-editor" | grep -o -E '"softwareVersion":.'"{8}" | sed 's/\"//g' | awk -F ': ' '{print $2}' expectedTeamID="F2TH9XX9CJ" ;; diff --git a/fragments/labels/tom4aconverter.sh b/fragments/labels/tom4aconverter.sh index bba86c0..bfc2b77 100644 --- a/fragments/labels/tom4aconverter.sh +++ b/fragments/labels/tom4aconverter.sh @@ -1,7 +1,7 @@ tom4aconverter) - name"To M4A Converter" + name="To M4A Converter" type="dmg" downloadURL="https://amvidia.com/downloads/to-m4a-converter-mac.dmg" - appNewVersion="curl -sf "https://amvidia.com/to-m4a-converter" | grep -o -E '"softwareVersion":.'"{8}" | sed 's/\"//g' | awk -F ': ' '{print $2}'" + appNewVersion=curl -sf "https://amvidia.com/to-m4a-converter" | grep -o -E '"softwareVersion":.'"{8}" | sed 's/\"//g' | awk -F ': ' '{print $2}' expectedTeamID="F2TH9XX9CJ" ;; From b6092df909905d892e8b7581d4aa8090e6331a7f Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:08:54 +0200 Subject: [PATCH 11/16] removed a spurious ) in perimeter81 --- fragments/labels/perimeter81.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/perimeter81.sh b/fragments/labels/perimeter81.sh index 353b0fb..2f05459 100644 --- a/fragments/labels/perimeter81.sh +++ b/fragments/labels/perimeter81.sh @@ -2,6 +2,6 @@ perimeter81) name="Perimeter 81" type="pkg" downloadURL="https://static.perimeter81.com/agents/mac/snapshot/latest/Perimeter81.pkg" - appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //' | cut -d"." -f1-3))" + appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //' | cut -d"." -f1-3)" expectedTeamID="924635PD62" ;; From e0a0b65b803e69c07476e6fbd4c95e3432df3821 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:27:41 +0200 Subject: [PATCH 12/16] added missing newlines at end of file --- Labels.txt | 11 ++++++++++- fragments/labels/airtame.sh | 2 +- fragments/labels/applenyfonts.sh | 2 +- fragments/labels/applesfcompact.sh | 2 +- fragments/labels/applesfmono.sh | 2 +- fragments/labels/applesfpro.sh | 2 +- fragments/labels/applesfsymbols.sh | 2 +- fragments/labels/boxsync.sh | 2 +- fragments/labels/boxtools.sh | 2 +- fragments/labels/cisdem-documentreader.sh | 2 +- fragments/labels/clevershare2.sh | 2 +- fragments/labels/colourcontrastanalyser.sh | 2 +- fragments/labels/craftmanager.sh | 2 +- fragments/labels/flowjo.sh | 2 +- fragments/labels/insomnia.sh | 2 +- fragments/labels/jetbrainsclion.sh | 2 +- fragments/labels/jetbrainsdatagrip.sh | 2 +- fragments/labels/jetbrainsintellijidea.sh | 2 +- fragments/labels/jetbrainsintellijideace.sh | 2 +- fragments/labels/jetbrainsphpstorm.sh | 2 +- fragments/labels/jetbrainspycharm.sh | 2 +- fragments/labels/jetbrainspycharmce.sh | 2 +- fragments/labels/jetbrainstoolbox.sh | 2 +- fragments/labels/jetbrainswebstorm.sh | 2 +- fragments/labels/microsoftteams.sh | 2 +- fragments/labels/muzzle.sh | 2 +- fragments/labels/parsec.sh | 2 +- fragments/labels/platypus.sh | 2 +- fragments/labels/prism9.sh | 2 +- fragments/labels/ringcentralclassicapp.sh | 2 +- fragments/labels/royaltsx.sh | 2 +- fragments/labels/screencloudplayer.sh | 2 +- fragments/labels/sketch.sh | 2 +- fragments/labels/skype.sh | 2 +- fragments/labels/snagit.sh | 2 +- fragments/labels/zoomrooms.sh | 2 +- 36 files changed, 45 insertions(+), 36 deletions(-) diff --git a/Labels.txt b/Labels.txt index 854bdaa..5e72460 100644 --- a/Labels.txt +++ b/Labels.txt @@ -58,6 +58,7 @@ cisdem-documentreader citrixworkspace clevershare2 clickshare +cloudya code42 coderunner colourcontrastanalyser @@ -74,7 +75,7 @@ depnotify desktoppr detectxswift devonthink -dialpad +dialog discord docker drift @@ -134,9 +135,11 @@ istatmenus iterm2 jabradirect jamfconnect +jamfconnectconfiguration jamfmigrator jamfpppcutility jamfreenroller +jetbrainsclion jetbrainsdatagrip jetbrainsintellijidea jetbrainsintellijideace @@ -144,6 +147,7 @@ jetbrainsphpstorm jetbrainspycharm jetbrainspycharmce jetbrainstoolbox +jetbrainswebstorm karabinerelements keepassxc keka @@ -188,6 +192,7 @@ microsoftvisualstudiocode microsoftword microsoftyammer miro +montereyblocker musescore muzzle netnewswire @@ -215,6 +220,7 @@ opera pacifist parsec pdfsam +perimeter81 pitch plantronicshub platypus @@ -276,6 +282,7 @@ swiftruntimeforcommandlinetools sync tableaudesktop tableaureader +tageditor taskpaper teamviewer teamviewerhost @@ -288,6 +295,7 @@ theunarchiver things thunderbird toggltrack +tom4aconverter torbrowser trex tunnelbear @@ -295,6 +303,7 @@ tunnelblick umbrellaroamingclient uniconverter universaltypeclient +utm vagrant vanilla veracrypt diff --git a/fragments/labels/airtame.sh b/fragments/labels/airtame.sh index bbc5dc7..13d637a 100644 --- a/fragments/labels/airtame.sh +++ b/fragments/labels/airtame.sh @@ -4,4 +4,4 @@ airtame) downloadURL="$(curl -fs https://airtame.com/download/ | grep -i platform=mac | head -1 | grep -o -i -E "https.*" | cut -d '"' -f1)" appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g')" expectedTeamID="4TPSP88HN2" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/applenyfonts.sh b/fragments/labels/applenyfonts.sh index f671819..16c7185 100644 --- a/fragments/labels/applenyfonts.sh +++ b/fragments/labels/applenyfonts.sh @@ -4,4 +4,4 @@ applenyfonts) downloadURL="https://devimages-cdn.apple.com/design/resources/download/NY.dmg" packageID="com.apple.pkg.NYFonts" expectedTeamID="Development Update" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/applesfcompact.sh b/fragments/labels/applesfcompact.sh index f174053..aef7977 100644 --- a/fragments/labels/applesfcompact.sh +++ b/fragments/labels/applesfcompact.sh @@ -4,4 +4,4 @@ applesfcompact) downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg" packageID="com.apple.pkg.SanFranciscoCompact" expectedTeamID="Development Update" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/applesfmono.sh b/fragments/labels/applesfmono.sh index 29233f1..46c32a7 100644 --- a/fragments/labels/applesfmono.sh +++ b/fragments/labels/applesfmono.sh @@ -4,4 +4,4 @@ applesfmono) downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg" packageID="com.apple.pkg.SFMonoFonts" expectedTeamID="Software Update" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/applesfpro.sh b/fragments/labels/applesfpro.sh index 9ba2628..9d76895 100644 --- a/fragments/labels/applesfpro.sh +++ b/fragments/labels/applesfpro.sh @@ -4,4 +4,4 @@ applesfpro) downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg" packageID="com.apple.pkg.SanFranciscoPro" expectedTeamID="Development Update" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/applesfsymbols.sh b/fragments/labels/applesfsymbols.sh index f90150b..1b0c751 100644 --- a/fragments/labels/applesfsymbols.sh +++ b/fragments/labels/applesfsymbols.sh @@ -4,4 +4,4 @@ sfsymbols) type="pkgInDmg" downloadURL="https://developer.apple.com/design/downloads/SF-Symbols.dmg" expectedTeamID="Software Update" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/boxsync.sh b/fragments/labels/boxsync.sh index 9962e3f..b6df054 100644 --- a/fragments/labels/boxsync.sh +++ b/fragments/labels/boxsync.sh @@ -3,4 +3,4 @@ boxsync) type="dmg" downloadURL="https://e3.boxcdn.net/box-installers/sync/Sync+4+External/Box%20Sync%20Installer.dmg" expectedTeamID="M683GB7CPW" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/boxtools.sh b/fragments/labels/boxtools.sh index 2963c68..11690f5 100644 --- a/fragments/labels/boxtools.sh +++ b/fragments/labels/boxtools.sh @@ -3,4 +3,4 @@ boxtools) type="pkg" downloadURL="https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg" expectedTeamID="M683GB7CPW" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/cisdem-documentreader.sh b/fragments/labels/cisdem-documentreader.sh index f8cf75c..f57b72a 100644 --- a/fragments/labels/cisdem-documentreader.sh +++ b/fragments/labels/cisdem-documentreader.sh @@ -4,4 +4,4 @@ cisdem-documentreader) downloadURL="https://download.cisdem.com/cisdem-documentreader.dmg" expectedTeamID="5HGV8EX6BQ" appName="Cisdem Document Reader.app" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/clevershare2.sh b/fragments/labels/clevershare2.sh index 1a7bb90..452ffde 100644 --- a/fragments/labels/clevershare2.sh +++ b/fragments/labels/clevershare2.sh @@ -4,4 +4,4 @@ clevershare2) downloadURL=$(curl -fs https://www.clevertouch.com/eu/clevershare2g | grep -i -o -E "https.*Mac.*\.dmg") appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z-]*_Mac\.([0-9.]*)\.[0-9]*\.dmg$/\1/g' ) expectedTeamID="P76M9BE8DQ" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/colourcontrastanalyser.sh b/fragments/labels/colourcontrastanalyser.sh index 613ccba..086569c 100644 --- a/fragments/labels/colourcontrastanalyser.sh +++ b/fragments/labels/colourcontrastanalyser.sh @@ -5,4 +5,4 @@ colourcontrastanalyser) appNewVersion=$(versionFromGit ThePacielloGroup CCAe) expectedTeamID="34RS4UC3M6" blockingProcesses=( NONE ) - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/craftmanager.sh b/fragments/labels/craftmanager.sh index 6906ad6..6bf89d8 100644 --- a/fragments/labels/craftmanager.sh +++ b/fragments/labels/craftmanager.sh @@ -5,4 +5,4 @@ craftmanager) downloadURL="$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)" appNewVersion="$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)" expectedTeamID="VRXQSNCL5W" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/flowjo.sh b/fragments/labels/flowjo.sh index 6ddb9b1..b713914 100644 --- a/fragments/labels/flowjo.sh +++ b/fragments/labels/flowjo.sh @@ -5,4 +5,4 @@ flowjo) appNewVersion=$(echo "${downloadURL}" | tr "-" "\n" | grep dmg | sed -E 's/([0-9.]*)\.dmg/\1/g') expectedTeamID="C79HU5AD9V" appName="FlowJo.app" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/insomnia.sh b/fragments/labels/insomnia.sh index 6d8922a..9de4706 100644 --- a/fragments/labels/insomnia.sh +++ b/fragments/labels/insomnia.sh @@ -4,4 +4,4 @@ insomnia) downloadURL=$(downloadURLFromGit kong insomnia) appNewVersion=$(versionFromGit kong insomnia) expectedTeamID="FX44YY62GV" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainsclion.sh b/fragments/labels/jetbrainsclion.sh index 8acbd1e..5a193a4 100644 --- a/fragments/labels/jetbrainsclion.sh +++ b/fragments/labels/jetbrainsclion.sh @@ -9,4 +9,4 @@ jetbrainsclion) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainsdatagrip.sh b/fragments/labels/jetbrainsdatagrip.sh index 5dcf642..adb8dba 100644 --- a/fragments/labels/jetbrainsdatagrip.sh +++ b/fragments/labels/jetbrainsdatagrip.sh @@ -10,4 +10,4 @@ jetbrainsdatagrip) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainsintellijidea.sh b/fragments/labels/jetbrainsintellijidea.sh index 51cd19f..262298b 100644 --- a/fragments/labels/jetbrainsintellijidea.sh +++ b/fragments/labels/jetbrainsintellijidea.sh @@ -10,4 +10,4 @@ jetbrainsintellijidea) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainsintellijideace.sh b/fragments/labels/jetbrainsintellijideace.sh index 2b1b8e4..3beb6fd 100644 --- a/fragments/labels/jetbrainsintellijideace.sh +++ b/fragments/labels/jetbrainsintellijideace.sh @@ -11,4 +11,4 @@ intellijideace) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainsphpstorm.sh b/fragments/labels/jetbrainsphpstorm.sh index 541246c..1a21310 100644 --- a/fragments/labels/jetbrainsphpstorm.sh +++ b/fragments/labels/jetbrainsphpstorm.sh @@ -10,4 +10,4 @@ jetbrainsphpstorm) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainspycharm.sh b/fragments/labels/jetbrainspycharm.sh index 10535ff..ca99389 100644 --- a/fragments/labels/jetbrainspycharm.sh +++ b/fragments/labels/jetbrainspycharm.sh @@ -10,4 +10,4 @@ jetbrainspycharm) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainspycharmce.sh b/fragments/labels/jetbrainspycharmce.sh index 646539b..c571ebf 100644 --- a/fragments/labels/jetbrainspycharmce.sh +++ b/fragments/labels/jetbrainspycharmce.sh @@ -10,4 +10,4 @@ pycharmce) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainstoolbox.sh b/fragments/labels/jetbrainstoolbox.sh index 49e5046..8bc695c 100644 --- a/fragments/labels/jetbrainstoolbox.sh +++ b/fragments/labels/jetbrainstoolbox.sh @@ -9,4 +9,4 @@ jetbrainstoolbox) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/jetbrainswebstorm.sh b/fragments/labels/jetbrainswebstorm.sh index 65bb473..c92caab 100644 --- a/fragments/labels/jetbrainswebstorm.sh +++ b/fragments/labels/jetbrainswebstorm.sh @@ -9,4 +9,4 @@ jetbrainswebstorm) downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/microsoftteams.sh b/fragments/labels/microsoftteams.sh index b580758..475ee5a 100644 --- a/fragments/labels/microsoftteams.sh +++ b/fragments/labels/microsoftteams.sh @@ -10,4 +10,4 @@ microsoftteams) # Commenting out msupdate as it is not really supported *yet* for teams # updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" # updateToolArguments=( --install --apps TEAM01 ) - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/muzzle.sh b/fragments/labels/muzzle.sh index 76091f7..9f2fa31 100644 --- a/fragments/labels/muzzle.sh +++ b/fragments/labels/muzzle.sh @@ -4,4 +4,4 @@ muzzle) downloadURL="https://muzzleapp.com/binaries/muzzle.zip" appNewVersion=$(curl -fs https://muzzleapp.com/updates/ | grep -io 'h2.*Version.* [0-9.]*.*h2' | head -1 | sed -E 's/.*ersion *([0-9.]*).*/\1/g') expectedTeamID="49EYHPJ4Q3" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/parsec.sh b/fragments/labels/parsec.sh index 68b3841..8b72a04 100644 --- a/fragments/labels/parsec.sh +++ b/fragments/labels/parsec.sh @@ -3,4 +3,4 @@ parsec) type="pkg" downloadURL="https://builds.parsecgaming.com/package/parsec-macos.pkg" expectedTeamID="Y9MY52XZDB" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/platypus.sh b/fragments/labels/platypus.sh index 62e2f41..257de1a 100644 --- a/fragments/labels/platypus.sh +++ b/fragments/labels/platypus.sh @@ -4,4 +4,4 @@ platypus) downloadURL=$(downloadURLFromGit sveinbjornt Platypus) appNewVersion=$(versionFromGit sveinbjornt Platypus) expectedTeamID="55GP2M789L" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/prism9.sh b/fragments/labels/prism9.sh index 9bdba3f..a94e5e9 100644 --- a/fragments/labels/prism9.sh +++ b/fragments/labels/prism9.sh @@ -3,4 +3,4 @@ prism9) type="dmg" downloadURL="https://cdn.graphpad.com/downloads/prism/9/InstallPrism9.dmg" expectedTeamID="YQ2D36NS9M" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/ringcentralclassicapp.sh b/fragments/labels/ringcentralclassicapp.sh index ef75cee..78d4186 100644 --- a/fragments/labels/ringcentralclassicapp.sh +++ b/fragments/labels/ringcentralclassicapp.sh @@ -5,4 +5,4 @@ ringcentralclassicapp) expectedTeamID="M932RC5J66" blockingProcesses=( "Glip" ) #blockingProcessesMaxCPU="5" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/royaltsx.sh b/fragments/labels/royaltsx.sh index af5082e..6ebc77a 100644 --- a/fragments/labels/royaltsx.sh +++ b/fragments/labels/royaltsx.sh @@ -4,4 +4,4 @@ royaltsx) downloadURL=$(curl -fs https://royaltsx-v5.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) appNewVersion=$(curl -fs https://royaltsx-v5.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2) expectedTeamID="VXP8K9EDP6" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/screencloudplayer.sh b/fragments/labels/screencloudplayer.sh index e7c1604..6a19dc5 100644 --- a/fragments/labels/screencloudplayer.sh +++ b/fragments/labels/screencloudplayer.sh @@ -4,4 +4,4 @@ screencloudplayer) type="dmg" downloadURL=$(curl -sL "https://screencloud.com/download" | sed -n 's/^.*"url":"\([^"]*\)".*$/\1/p') expectedTeamID="3C4F953K6P" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/sketch.sh b/fragments/labels/sketch.sh index 637a5b6..7cf3b9a 100644 --- a/fragments/labels/sketch.sh +++ b/fragments/labels/sketch.sh @@ -4,4 +4,4 @@ sketch) downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | sed -E 's/.*href=\"(.*)\".?/\1/g') appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page expectedTeamID="WUGMZZ5K46" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/skype.sh b/fragments/labels/skype.sh index f14d15b..a689ffa 100644 --- a/fragments/labels/skype.sh +++ b/fragments/labels/skype.sh @@ -5,4 +5,4 @@ skype) appNewVersion=$(curl -is "https://get.skype.com/go/getskype-skypeformac" | grep ocation: | grep -o "Skype-.*dmg" | cut -d "-" -f 2 | cut -d "." -f1-2) expectedTeamID="AL798K98FX" Company="Microsoft" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/snagit.sh b/fragments/labels/snagit.sh index f748e1b..2c65478 100644 --- a/fragments/labels/snagit.sh +++ b/fragments/labels/snagit.sh @@ -5,4 +5,4 @@ snagit2020) type="dmg" downloadURL="https://download.techsmith.com/snagitmac/releases/Snagit.dmg" expectedTeamID="7TQL462TU8" - ;; \ No newline at end of file + ;; diff --git a/fragments/labels/zoomrooms.sh b/fragments/labels/zoomrooms.sh index c3f87b7..37186be 100644 --- a/fragments/labels/zoomrooms.sh +++ b/fragments/labels/zoomrooms.sh @@ -6,4 +6,4 @@ zoomrooms) appNewVersion="$(curl -fsIL ${downloadURL} | grep -i location | cut -d "/" -f5)" expectedTeamID="BJ4HAAB9B3" blockingProcesses=( "ZoomPresence" ) - ;; \ No newline at end of file + ;; From c40168f301a84e4aa3b10c9947984ea5b1e1c323 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:33:28 +0200 Subject: [PATCH 13/16] added yet one more missing return --- fragments/labels/zulujdk8.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/zulujdk8.sh b/fragments/labels/zulujdk8.sh index 5581ffa..0a10e49 100644 --- a/fragments/labels/zulujdk8.sh +++ b/fragments/labels/zulujdk8.sh @@ -10,4 +10,4 @@ zulujdk8) expectedTeamID="TDTHCUPYFR" appCustomVersion(){ if [ -f "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Info.plist" ]; then /usr/bin/defaults read "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Info.plist" "CFBundleName" | sed 's/Zulu //'; fi } appNewVersion=$(echo "$downloadURL" | cut -d "-" -f 1 | sed -e "s/.*zulu//") # Cannot be compared to anything - ;; \ No newline at end of file + ;; From 39f67c9e89459dfc6134e26d3738c38fc194f703 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:40:16 +0200 Subject: [PATCH 14/16] updated version number and readme --- README.md | 14 ++++++-------- fragments/version.sh | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 36cfaba..c7a3901 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # Installomator -__Please note, that if you are contributing to this project with new labels or other suggestions in PRs, please put your changes in the fragmented files, not the full `Installomator.sh` script. The full script is now a build of the fragments, and will be overwritten.__ - _The one installer script to rule them all._ ![](https://img.shields.io/github/v/release/scriptingosx/Installomator) ![](https://img.shields.io/github/downloads/scriptingosx/Installomator/latest/total) ![](https://img.shields.io/badge/macOS-10.14%2B-success) ![](https://img.shields.io/github/license/scriptingosx/Installomator) @@ -14,14 +12,14 @@ I have put a lot of work into making it stable and safe, but I cannot - of cours ## Support and Contributing +__Please note, that if you are contributing to this project with new labels or other suggestions in PRs, please put your changes in the fragmented files, not the full `Installomator.sh` script. The full script is now a build of the fragments, and will be overwritten. See the REAMDME.md file in the `utils` directory for detailed instructions.__ + Discussion, support and advice around Installomator happens in the `#installomator` channel in the [MacAdmins.org 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!) -__Please note, that if you are contributing to this project with new labels or other suggestions in PRs, please put your changes in the fragmented files, not the full `Installomator.sh` script. The full script is now a build of the fragments, and will be overwritten.__ - We try to keep the script as short as possible, and with more than 300 labels, we can save 300 lines in the script, if we do not have credit lines on each of these. So we are thankful for your contribution, but we will be removing these lines in the coming releases. ## More reading @@ -91,7 +89,7 @@ Installomator can work with the following common archive and installer types: - dmg: for the common 'drag app to /Applications' installation style - zip: the application is just compressed with zip or or tbz -When the download yields a pkg file, Installomator will run `installer` to install it on the current system. +When the download yields a pkg file, Installomator will run `installer` to install it on the current system. Applications in dmgs or zips will be copied to `/Applications` and their owner will be set to the current user, so the install works like a standard drag'n drop installation. @@ -240,7 +238,7 @@ WARNING! It might block the MDM agent on the machine, as the scripts gets stuct - `tell_user_then_kill`: Show dialog 2 times, and if the quitting fails, the blocking processes will be killed. - `kill`: kill process without prompting or giving the user a chance to save. -If any process was closed, Installomator will try to open the app again, after the update process is done. +If any process was closed, Installomator will try to open the app again, after the update process is done. ### Notification @@ -354,7 +352,7 @@ Depending on the application or pkg there are a few more variables you can or ne dmg or zip: Applications will be copied to this directory. Default value is '`/Applications`' for dmg and zip installations. - pkg: + pkg: `targetDir` is used as the install-location. Default is '`/`'. - `blockingProcesses`: (optional) @@ -379,7 +377,7 @@ Depending on the application or pkg there are a few more variables you can or ne e.g. `msupdate` (see microsoft installations) - `updateToolRunAsCurrentUser`: - When this variable is set (any value), `$updateTool` will be run as the current user. Default is unset and + When this variable is set (any value), `$updateTool` will be run as the current user. Default is unset and ### Configuration from Arguments diff --git a/fragments/version.sh b/fragments/version.sh index 7cee47d..faef31a 100644 --- a/fragments/version.sh +++ b/fragments/version.sh @@ -1 +1 @@ -0.7.0b1 \ No newline at end of file +0.7.0 From 4c38386c53a95bb8b44721775da1be926be49578 Mon Sep 17 00:00:00 2001 From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:42:20 +0200 Subject: [PATCH 15/16] updated changelog --- CHANGELOG.md | 8 +- Installomator.sh | 577 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 432 insertions(+), 153 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74d7b8f..2a1d15d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ -## v0.7 - pre-release +## v0.7 -- default for `BLOCKING_PROCESS_ACTION`is now `BLOCKING_PROCESS_ACTION=tell_user` and not `prompt_user`. It will demand the user to quit the app to get it updated, and not present any option to skip it. In considering various use cases in different MDM solutions this is the best option going forward. Users usually choose to update, and is most often not bothered much with this information. If it's absoultely a bad time, then they can move the dialog box to the side, and click it when ready. +- default for `BLOCKING_PROCESS_ACTION`is now `BLOCKING_PROCESS_ACTION=tell_user` and not `prompt_user`. It will demand the user to quit the app to get it updated, and not present any option to skip it. In considering various use cases in different MDM solutions this is the best option going forward. Users usually choose to update, and is most often not bothered much with this information. If it's absoultely a bad time, then they can move the dialog box to the side, and click it when ready. - script is now assembled from fragments. This helps avoid merging conflicts on git and allows the core team to work on the script logic while also accepting new labels. See the "Assemble Script ReadMe" for details. - We now detect App Store installed apps, and we do not replace them automatically. An example is Slack that will loose all settings if it is suddenly changed from App Store version to the "web" version (they differ in the handling of settings files). If `INSTALL=force` then we will replace the App Store app. We log all this. - Change in finding installed apps. We now look in /Applications and /Applications/Utilities first. If not found there, we use spotligt to find it. (We discovered a problem when a user has Parallels Windows installed with Microsoft Edge in it. Then Installomator wanted to update the app all the time, becaus spotligt found that Windows version of the app that Parallels created.) @@ -24,10 +24,10 @@ - Major update and now with help from @Theile and @Isaac - Added additional `BLOCKING_PROCESS_ACTION` handlings - Added additional `NOTIFY=all`. Usuful if used in Self Service, as the user will be notified before download, before install as well as when it is done. -- Added variable `LOGO` for icons i dialogs, use `LOGO=appstore` (or `jamf` or `mosyleb` or `mosylem` or `addigy`). It's also possible to set it to a direct path to a specific icon. Default is `appstore`. +- Added variable `LOGO` for icons i dialogs, use `LOGO=appstore` (or `jamf` or `mosyleb` or `mosylem` or `addigy`). It's also possible to set it to a direct path to a specific icon. Default is `appstore`. - Added variable `INSTALL` that can be set to `INSTALL=force` if software needs to be installed even though latest version is already installed (it will be a reinstall). - Version control now included. The variable `appNewVersion` in a label can be used to tell what the latest version from the web is. If this is not given, version checking is done after download. -- For a label that only installs a pkg without an app in it, a variable `packageID` can be used for version checking. +- For a label that only installs a pkg without an app in it, a variable `packageID` can be used for version checking. - Labels now sorted alphabetically, except for the Microsoft ones (that are at the end of the list). A bunch of new labels added, and lots of them have either been changed or improved (with `appNewVersion` og `packageID`). - If an app is asked to be closed down, it will now be opened again after the update. - If your MDM cannot call a script with parameters, the label can be set in the top of the script. diff --git a/Installomator.sh b/Installomator.sh index 21e1463..1a82401 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -34,7 +34,7 @@ NOTIFY=success # behavior when blocking processes are found -BLOCKING_PROCESS_ACTION=prompt_user +BLOCKING_PROCESS_ACTION=tell_user # options: # - ignore continue even when blocking processes are found # - quit app will be told to quit nicely, if running @@ -51,6 +51,9 @@ BLOCKING_PROCESS_ACTION=prompt_user # - prompt_user_loop # Like prompt-user, but clicking "Not Now", will just wait an hour, # and then it will ask again. +# WARNING! It might block the MDM agent on the machine, as +# the scripts gets stuct in waiting until the hour has passed, +# possibly blocking for other management actions in this time. # - tell_user User will be showed a notification about the important update, # but user is only allowed to quit and continue, and then we # ask the app to quit. @@ -68,7 +71,20 @@ LOGO=appstore # - mosyleb Mosyle Business # - mosylem Mosyle Manager (Education) # - addigy Addigy -# 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 are escaped). +# 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). + + +# App Store apps handling +IGNORE_APP_STORE_APPS=no +# options: +# - no If installed app is from App Store (which include VPP installed apps) +# it will not be touched, no matter it's version (default) +# - yes Replace App Store (and VPP) version of app and handle future +# updates using Installomator, even if latest version. +# Shouldn’t give any problems for the user in most cases. +# Known bad example: Slack will loose all settings. # install behavior @@ -185,8 +201,8 @@ REOPEN="yes" # - updateToolRunAsCurrentUser: # When this variable is set (any value), $updateTool will be run as the current user. # -VERSION="0.7.0b1" -VERSIONDATE="2021-08-17" +VERSION="0.7.0" +VERSIONDATE="2021-10-14" # MARK: Functions @@ -363,6 +379,16 @@ getAppVersion() { #appversion=$(mdls -name kMDItemVersion -raw $installedAppPath ) appversion=$(defaults read $installedAppPath/Contents/Info.plist $versionKey) #Not dependant on Spotlight indexing printlog "found app at $installedAppPath, version $appversion" + # Is current app from App Store + if [[ -d "$installedAppPath"/Contents/_MASReceipt ]];then + printlog "Installed $appName is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace." + if [[ $IGNORE_APP_STORE_APPS == "yes" ]]; then + printlog "Replacing App Store apps, no matter the version" + appversion=0 + else + cleanupAndExit 1 "App previously installed from App Store, and we respect that" + fi + fi else printlog "could not determine location of $appName" fi @@ -963,6 +989,13 @@ airserver) #appNewVersion=$() # Cannot find version history or release notes on home page expectedTeamID="6C755KS5W3" ;; +airtame) + name="Airtame" + type="dmg" + downloadURL="$(curl -fs https://airtame.com/download/ | grep -i platform=mac | head -1 | grep -o -i -E "https.*" | cut -d '"' -f1)" + appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g')" + expectedTeamID="4TPSP88HN2" + ;; aldente) name="AlDente" type="dmg" @@ -1032,14 +1065,14 @@ appcleaner) applenyfonts) name="Apple New York Font Collection" type="pkgInDmg" - downloadURL="https://devimages-cdn.apple.com/design/resources/download/NY-Font.dmg" + downloadURL="https://devimages-cdn.apple.com/design/resources/download/NY.dmg" packageID="com.apple.pkg.NYFonts" expectedTeamID="Development Update" ;; applesfcompact) name="San Francisco Compact" type="pkgInDmg" - downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Font-Compact.dmg" + downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg" packageID="com.apple.pkg.SanFranciscoCompact" expectedTeamID="Development Update" ;; @@ -1053,10 +1086,17 @@ applesfmono) applesfpro) name="San Francisco Pro" type="pkgInDmg" - downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Font-Pro.dmg" + downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg" packageID="com.apple.pkg.SanFranciscoPro" expectedTeamID="Development Update" ;; +applesfsymbols|\ +sfsymbols) + name="SF Symbols" + type="pkgInDmg" + downloadURL="https://developer.apple.com/design/downloads/SF-Symbols.dmg" + expectedTeamID="Software Update" + ;; aquaskk) # credit: Tadayuki Onishi (@kenchan0130) name="aquaskk" @@ -1103,6 +1143,13 @@ audacity) appNewVersion=$(versionFromGit audacity audacity) expectedTeamID="T3N4JQ7YY6" ;; +authydesktop) + name="Authy Desktop" + type="dmg" + downloadURL="https://electron.authy.com/download?channel=stable&arch=x64&platform=darwin&version=latest&product=authy" + appNewVersion="$(curl -sfL --output /dev/null -r 0-0 "${downloadURL}" --remote-header-name --remote-name -w "%{url_effective}\n" | grep -o -E '([a-zA-Z0-9\_.%-]*)\.(dmg|pkg|zip|tbz)$' | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')" + expectedTeamID="9EVH78F4V4" + ;; autodmg) # credit: Mischa van der Bent (@mischavdbent) name="AutoDMG" @@ -1197,7 +1244,7 @@ bitwarden) 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 .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) appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-.*/\1/g' ) expectedTeamID="68UA947AUU" ;; @@ -1224,12 +1271,19 @@ boxdrive) fi expectedTeamID="M683GB7CPW" ;; +boxsync) + name="Box Sync" + type="dmg" + downloadURL="https://e3.boxcdn.net/box-installers/sync/Sync+4+External/Box%20Sync%20Installer.dmg" + expectedTeamID="M683GB7CPW" + ;; boxtools) - name="Box Tools" - type="pkg" - downloadURL="https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg" - expectedTeamID="M683GB7CPW" - ;;brave) + name="Box Tools" + type="pkg" + downloadURL="https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg" + expectedTeamID="M683GB7CPW" + ;; +brave) # credit: @securitygeneration name="Brave Browser" type="dmg" @@ -1265,6 +1319,10 @@ calibre) type="dmg" downloadURL="https://calibre-ebook.com/dist/osx" appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' ) + #Maybe change to GitHub for this title. Looks like 5.28.0 release is the first to also release a binary, so maybe see what the next release will be to decide if we should switch. + #downloadURL=$(downloadURLFromGit kovidgoyal calibre ) + #appNewVersion=$(versionFromGit kovidgoyal calibre ) + #archiveName="OS X dmg" expectedTeamID="NTY7FVCEKP" ;; camostudio) @@ -1281,6 +1339,13 @@ camtasia) downloadURL=https://download.techsmith.com/camtasiamac/releases/Camtasia.dmg expectedTeamID="7TQL462TU8" ;; +cisdem-documentreader) + name="cisdem-documentreader" + type="dmg" + downloadURL="https://download.cisdem.com/cisdem-documentreader.dmg" + expectedTeamID="5HGV8EX6BQ" + appName="Cisdem Document Reader.app" + ;; citrixworkspace) #credit: Erik Stam (@erikstam) and #Philipp on MacAdmins Slack name="Citrix Workspace" @@ -1290,10 +1355,9 @@ citrixworkspace) expectedTeamID="S272Y5R93J" ;; clevershare2) - # credit: Søren Theilgaard (@theilgaard) name="Clevershare" type="dmg" - downloadURL=$(curl -fs https://archive.clevertouch.com/clevershare2g | grep -i "_Mac" | tr '"' "\n" | grep "^http.*dmg") + downloadURL=$(curl -fs https://www.clevertouch.com/eu/clevershare2g | grep -i -o -E "https.*Mac.*\.dmg") appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z-]*_Mac\.([0-9.]*)\.[0-9]*\.dmg$/\1/g' ) expectedTeamID="P76M9BE8DQ" ;; @@ -1304,6 +1368,13 @@ clickshare) downloadURL=https://www.barco.com$(curl -fs "https://www.barco.com/en/clickshare/app" | grep -E -o '(\/\S*Download\?FileNumber=R3306192\S*ShowDownloadPage=False)' | tail -1) expectedTeamID="P6CDJZR997" ;; +cloudya) + name="Cloudya" + type="appInDmgInZip" + downloadURL="$(curl -fs https://www.nfon.com/de/service/downloads | grep -i -E -o "https://cdn.cloudya.com/Cloudya-[.0-9]+-mac.zip")" + appNewVersion="$(curl -fs https://www.nfon.com/de/service/downloads | grep -i -E -o "Cloudya Desktop App MAC [0-9.]*" | sed 's/^.*\ \([^ ]\{0,7\}\)$/\1/g')" + expectedTeamID="X26F74J8TH" + ;; code42) # credit: Isaac Ordonez, Mann consulting (@mannconsulting) name="Code42" @@ -1320,13 +1391,14 @@ coderunner) expectedTeamID="R4GD98AJF9" ;; colourcontrastanalyser) - name="Colour Contrast Analyser (CCA)" - type="dmg" - downloadURL=$(downloadURLFromGit ThePacielloGroup CCAe) - appNewVersion=$(versionFromGit ThePacielloGroup CCAe) - expectedTeamID="34RS4UC3M6" - blockingProcesses=( NONE ) - ;;cormorant) + name="Colour Contrast Analyser (CCA)" + type="dmg" + downloadURL=$(downloadURLFromGit ThePacielloGroup CCAe) + appNewVersion=$(versionFromGit ThePacielloGroup CCAe) + expectedTeamID="34RS4UC3M6" + blockingProcesses=( NONE ) + ;; +cormorant) # credit: Søren Theilgaard (@theilgaard) name="Cormorant" type="zip" @@ -1334,6 +1406,14 @@ colourcontrastanalyser) appNewVersion=$(curl -fs https://eclecticlight.co/downloads/ | grep zip | grep -o -E "$name [0-9.]*" | awk '{print $2}') expectedTeamID="QWY4LRW926" ;; +craftmanager) + name="CraftManager" + type="zip" + #downloadURL="https://craft-assets.invisionapp.com/CraftManager/production/CraftManager.zip" + downloadURL="$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)" + appNewVersion="$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)" + expectedTeamID="VRXQSNCL5W" + ;; cryptomator) name="Cryptomator" type="dmg" @@ -1416,7 +1496,14 @@ devonthink) appNewVersion=$( echo ${downloadURL} | tr '/' '\n' | grep "[0-9]" | grep "[.]" | head -1 ) expectedTeamID="679S2QUWR8" ;; -dialpad) +dialog) + name="Dialog" + type="pkg" + downloadURL=$(downloadURLFromGit bartreardon Dialog-public ) + appNewVersion=$(versionFromGit bartreardon Dialog-public ) + expectedTeamID="PWA5E9TQ59" + ;; + dialpad) # credit: @ehosaka name="Dialpad" type="dmg" @@ -1538,7 +1625,12 @@ ferdi) figma) name="Figma" type="zip" - downloadURL="https://desktop.figma.com/mac/Figma.zip" + if [[ $(arch) == "arm64" ]]; then + downloadURL="https://desktop.figma.com/mac-arm/Figma.zip" + elif [[ $(arch) == "i386" ]]; then + downloadURL="https://desktop.figma.com/mac/Figma.zip" + fi + appNewVersion="$(curl -fsL https://desktop.figma.com/mac/RELEASE.json | awk -F '"' '{ print $8 }')" expectedTeamID="T8RA8NE3B7" ;; firefox) @@ -1620,6 +1712,14 @@ firefoxpkg) expectedTeamID="43AQ936H96" blockingProcesses=( firefox ) ;; +flowjo) + name="FlowJo-OSX64-10.8.0" + type="dmg" + downloadURL="$(curl -fs "https://www.flowjo.com/solutions/flowjo/downloads" | grep -i -o -E "https.*\.dmg")" + appNewVersion=$(echo "${downloadURL}" | tr "-" "\n" | grep dmg | sed -E 's/([0-9.]*)\.dmg/\1/g') + expectedTeamID="C79HU5AD9V" + appName="FlowJo.app" + ;; front) name="Front" type="dmg" @@ -1667,11 +1767,11 @@ googlechrome) if [[ $(arch) != "i386" ]]; then printlog "Architecture: arm64 (not i386)" downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg" - appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}') # Credit: William Smith (@meck) + appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}') else printlog "Architecture: i386" downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" - appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac,stable/{print $3; exit}') # Credit: William Smith (@meck) + appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac,stable/{print $3; exit}') fi expectedTeamID="EQHXZ8M8AV" ;; @@ -1791,9 +1891,8 @@ hancock) 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 }") - appNewVersion=$(curl -sf "https://api.github.com/repos/HandBrake/HandBrake/releases/latest" | awk -F '"' "/tag_name/ { print \$4 }") + downloadURL=$(downloadURLFromGit HandBrake HandBrake ) + appNewVersion=$(versionFromGit HandBrake HandBrake ) expectedTeamID="5X9DE89KYV" ;; hazel) @@ -1839,7 +1938,7 @@ icons) expectedTeamID="7R5ZEU67FQ" ;; imazingprofileeditor) - # Credit: Bilal Habib @Pro4TLZZZ + # Credit: Bilal Habib @Pro4TLZZ name="iMazing Profile Editor" type="dmg" downloadURL="https://downloads.imazing.com/mac/iMazing-Profile-Editor/iMazingProfileEditorMac.dmg" @@ -1853,6 +1952,13 @@ inkscape) #appNewVersion=$(curl -fsJL https://inkscape.org/release/ | grep "

Inkscape" | cut -d '>' -f 3 | cut -d '<' -f 1 | sed 's/[^0-9.]*//g') # Can't figure out where exact new version is found. Currently returns 1.0, but version is "1.0.0 (4035a4f)" expectedTeamID="SW3D6BB6A6" ;; +insomnia) + name="insomnia" + type="dmg" + downloadURL=$(downloadURLFromGit kong insomnia) + appNewVersion=$(versionFromGit kong insomnia) + expectedTeamID="FX44YY62GV" + ;; installomator_theile) # credit: Søren Theilgaard (@theilgaard) name="Installomator" @@ -1883,7 +1989,7 @@ iterm2) ;; jabradirect) name="Jabra Direct" - type="dmg" + type="pkgInDmg" downloadURL="https://jabraxpressonlineprdstor.blob.core.windows.net/jdo/JabraDirectSetup.dmg" expectedTeamID="55LV32M29R" appNewVersion=$(curl -fs https://www.jabra.com/Support/release-notes/release-note-jabra-direct | grep -o "Jabra Direct macOS:*.*<" | head -1 | cut -d ":" -f2 | cut -d " " -f2 | cut -d "<" -f1) @@ -1895,6 +2001,12 @@ jamfconnect) downloadURL="https://files.jamfconnect.com/JamfConnect.dmg" expectedTeamID="483DWKW443" ;; +jamfconnectconfiguration) + name="Jamf Connect Configuration" + type="dmg" + downloadURL="https://files.jamfconnect.com/JamfConnect.dmg" + expectedTeamID="483DWKW443" + ;; jamfmigrator) # credit: Mischa van der Bent name="jamf-migrator" @@ -1919,64 +2031,119 @@ jamfreenroller) #appNewVersion=$(versionFromGit jamf ReEnroller) expectedTeamID="PS2F6S478M" ;; +jetbrainsclion) + name="CLion" + type="dmg" + jetbrainscode="CL" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) + expectedTeamID="2ZEFAR8TH3" + ;; jetbrainsdatagrip) - # credit: AP Orlebeke (@apizz) - name="DataGrip" - type="dmg" - appNewVersion=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o 'version*.*,' | cut -d '"' -f3) - if [[ $(arch) == "arm64" ]]; then - downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o 'macM1*.*,' | cut -d '"' -f5) - elif [[ $(arch) == "i386" ]]; then - downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=DG&latest=true&type=release" | grep -o 'mac*.*,' | cut -d '"' -f5) - fi - expectedTeamID="2ZEFAR8TH3" - ;;jetbrainsintellijidea) - # credit: Gabe Marchan (gabemarchan.com - @darklink87) + name="DataGrip" + type="dmg" + jetbrainscode="DG" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) + expectedTeamID="2ZEFAR8TH3" + ;; +jetbrainsintellijidea) name="IntelliJ IDEA" type="dmg" - downloadURL="https://download.jetbrains.com/product?code=II&latest&distribution=mac" - appNewVersion=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=II&latest=true&type=release" | grep -o 'version*.*,' | cut -d '"' -f3) + jetbrainscode="II" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; jetbrainsintellijideace|\ intellijideace) name="IntelliJ IDEA CE" type="dmg" - downloadURL="https://download.jetbrains.com/product?code=IIC&latest&distribution=mac" - appNewVersion=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=IIC&latest=true&type=release" | grep -o 'version*.*,' | cut -d '"' -f3) + jetbrainscode="IIC" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; jetbrainsphpstorm) - # credit: Casey Jensen (@cajenson01 on MacAdmins Slack)Appended by Skylar Damiano @catdad on MacAdmins Slack - name="JetBrains PHPStorm" + name="PHPStorm" type="dmg" - downloadURL=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=PS&latest=true&type=release" | grep -o "mac*.*.dmg" | cut -d '"' -f5) - appNewVersion=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=PS&latest=true&type=release" | grep -o 'version*.*,' | cut -d '"' -f3) + jetbrainscode="PS" + if [[ $(arch) == i386 ]]; then + jetbrainsdistribution="mac" + elif [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; jetbrainspycharm) - # This is the Pro version of PyCharm. - # Do not confuse with PyCharm CE. + # This is the Pro version of PyCharm. Do not confuse with PyCharm CE. name="PyCharm" type="dmg" - appNewVersion=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=PCP&latest=true&type=release" | grep -o 'version*.*,' | cut -d '"' -f3) - if [[ $(arch) == i386 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCP&latest&distribution=mac" - elif [[ $(arch) == arm64 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCP&latest&distribution=macM1" + jetbrainscode="PCP" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; jetbrainspycharmce|\ pycharmce) name="PyCharm CE" type="dmg" - appNewVersion=$(curl -fs "https://data.services.jetbrains.com/products/releases?code=PCC&latest=true&type=release" | grep -o 'version*.*,' | cut -d '"' -f3) - if [[ $(arch) == i386 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCC&latest&distribution=mac" - elif [[ $(arch) == arm64 ]]; then - downloadURL="https://download.jetbrains.com/product?code=PCC&latest&distribution=macM1" + jetbrainscode="PCC" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) + expectedTeamID="2ZEFAR8TH3" + ;; +jetbrainstoolbox) + name="JetBrains Toolbox" + type="dmg" + jetbrainscode="TBA" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) + expectedTeamID="2ZEFAR8TH3" + ;; +jetbrainswebstorm) + name="Webstorm" + type="dmg" + jetbrainscode="WS" + jetbrainsdistribution="mac" + if [[ $(arch) == arm64 ]]; then + jetbrainsdistribution="macM1" + fi + downloadURL="https://download.jetbrains.com/product?code=${jetbrainscode}&latest&distribution=${jetbrainsdistribution}" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "location" | tail -1 | sed -E 's/.*\/[a-zA-Z-]*-([0-9.]*).*[-.].*dmg/\1/g' ) expectedTeamID="2ZEFAR8TH3" ;; karabinerelements) @@ -2006,6 +2173,12 @@ keka) appNewVersion=$(versionFromGit aonez Keka) expectedTeamID="4FG648TM2A" ;; +keybase) + name="Keybase" + type="dmg" + downloadURL=$(curl -s https://keybase.io/docs/the_app/install_macos | grep data-target | cut -d '"' -f2) + expectedTeamID="99229SGT5K" + ;; keyboardmaestro) # credit: Søren Theilgaard (@theilgaard) name="Keyboard Maestro" @@ -2103,8 +2276,10 @@ lucifer) lulu) name="LuLu" type="dmg" - downloadURL=$( curl -fs "https://objective-see.com/products/lulu.html" | grep https | grep "$type" | head -1 | tr '"' "\n" | grep "^http" ) - appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*_([0-9.]*)\..*/\1/g' ) + #downloadURL=$( curl -fs "https://objective-see.com/products/lulu.html" | grep https | grep "$type" | head -1 | tr '"' "\n" | grep "^http" ) + #appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*_([0-9.]*)\..*/\1/g' ) + downloadURL=$(downloadURLFromGit objective-see LuLu) + appNewVersion=$(versionFromGit objective-see LuLu) expectedTeamID="VBG97UB4TA" ;; macfuse) @@ -2152,6 +2327,14 @@ microsoftautoupdate) #updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" #updateToolArguments=( --install --apps MSau04 ) ;; +microsoftazurestorageexplorer) + name="Microsoft Azure Storage Explorer" + type="zip" + downloadURL=$(downloadURLFromGit microsoft AzureStorageExplorer ) + appNewVersion=$(versionFromGit microsoft AzureStorageExplorer ) + expectedTeamID="UBF8T346G9" + archiveName="Mac_StorageExplorer.zip" + ;; microsoftcompanyportal) name="Company Portal" type="pkg" @@ -2229,6 +2412,7 @@ microsoftofficebusinesspro) name="MicrosoftOfficeBusinessPro" type="pkg" downloadURL="https://go.microsoft.com/fwlink/?linkid=2009112" + appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3) expectedTeamID="UBF8T346G9" # using MS PowerPoint as the 'stand-in' for the entire suite appName="Microsoft PowerPoint.app" @@ -2310,10 +2494,8 @@ microsoftteams) type="pkg" packageID="com.microsoft.teams" downloadURL="https://go.microsoft.com/fwlink/?linkid=869428" - #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.teams.standalone"]/version' 2>/dev/null | sed -E 's/([0-9.]*) .*/\1/') - # Still using macadmin.software for version, as the path does not contain the version in a matching format. packageID can be used, but version is the same. appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.teams.standalone"]/version' 2>/dev/null | sed -E 's/([0-9.]*) .*/\1/') - # Looks like macadmin.software has package ID version. At least on 2021-05-28 version 1.00.411161 is matched on installed version and homepage. + # Looks like macadmin.software has package ID version. At least on 202105-28 version 1.00.411161 is matched on installed version and homepage. expectedTeamID="UBF8T346G9" blockingProcesses=( Teams "Microsoft Teams Helper" ) # Commenting out msupdate as it is not really supported *yet* for teams @@ -2358,6 +2540,14 @@ miro) downloadURL="https://desktop.miro.com/platforms/darwin/Miro.dmg" expectedTeamID="M3GM7MFY7U" ;; +montereyblocker) + name="montereyblocker" + type="pkg" + packageID="dk.envo-it.montereyblocker" + downloadURL=$(downloadURLFromGit Theile montereyblocker ) + appNewVersion=$(versionFromGit Theile montereyblocker ) + expectedTeamID="FXW6QXBFW5" + ;; musescore) name="MuseScore 3" type="dmg" @@ -2365,6 +2555,13 @@ musescore) appNewVersion=$(versionFromGit musescore MuseScore) expectedTeamID="6EPAF2X3PR" ;; +muzzle) + name="Muzzle" + type="zip" + downloadURL="https://muzzleapp.com/binaries/muzzle.zip" + appNewVersion=$(curl -fs https://muzzleapp.com/updates/ | grep -io 'h2.*Version.* [0-9.]*.*h2' | head -1 | sed -E 's/.*ersion *([0-9.]*).*/\1/g') + expectedTeamID="49EYHPJ4Q3" + ;; netnewswire) name="NetNewsWire" type="zip" @@ -2544,6 +2741,12 @@ pacifist) downloadURL="https://charlessoft.com/cgi-bin/pacifist_download.cgi?type=dmg" expectedTeamID="HRLUCP7QP4" ;; +parsec) + name="Parsec" + type="pkg" + downloadURL="https://builds.parsecgaming.com/package/parsec-macos.pkg" + expectedTeamID="Y9MY52XZDB" + ;; pdfsam) name="PDFsam Basic" type="dmg" @@ -2551,6 +2754,13 @@ pdfsam) appNewVersion=$(versionFromGit torakiki pdfsam) expectedTeamID="8XM3GHX436" ;; +perimeter81) + name="Perimeter 81" + type="pkg" + downloadURL="https://static.perimeter81.com/agents/mac/snapshot/latest/Perimeter81.pkg" + appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //' | cut -d"." -f1-3)" + expectedTeamID="924635PD62" + ;; pitch) name="Pitch" type="dmg" @@ -2565,12 +2775,13 @@ plantronicshub) appNewVersion=$(curl -fs "https://www.poly.com/in/en/support/knowledge-base/kb-article-page?lang=en_US&urlName=Hub-Release-Notes&type=Product_Information__kav" | grep -o "(*.*)" | head -1 | cut -d "(" -f2 | sed 's/\<\/span\>//g' | cut -d "<" -f1) ;; platypus) - name="Platypus" - type="zip" - downloadURL=$(downloadURLFromGit sveinbjornt Platypus) - appNewVersion=$(versionFromGit sveinbjornt Platypus) - expectedTeamID="55GP2M789L" - ;;plisteditpro) + name="Platypus" + type="zip" + downloadURL=$(downloadURLFromGit sveinbjornt Platypus) + appNewVersion=$(versionFromGit sveinbjornt Platypus) + expectedTeamID="55GP2M789L" + ;; +plisteditpro) name="PlistEdit Pro" type="zip" downloadURL="https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip" @@ -2589,7 +2800,6 @@ prism9) type="dmg" downloadURL="https://cdn.graphpad.com/downloads/prism/9/InstallPrism9.dmg" expectedTeamID="YQ2D36NS9M" - Company="GraphPad Software" ;; privileges) # credit: Erik Stam (@erikstam) @@ -2722,11 +2932,19 @@ rocketchat) expectedTeamID="S6UPZG7ZR3" blockingProcesses=( Rocket.Chat ) ;; +rodeconnect) + name="RODE Connect" + type="pkgInZip" + #packageID="com.rodeconnect.installer" #Versioned wrong as 0 in 1.1.0 pkg + downloadURL="https://cdn1.rode.com/rodeconnect_installer_mac.zip" + appNewVersion="$(curl -fs https://rode.com/software/rode-connect | grep -i -o ">Current version .*<" | cut -d " " -f4)" + expectedTeamID="Z9T72PWTJA" + ;; 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) - appNewVersion=$(curl -fs https://royaltsx-v4.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2) + downloadURL=$(curl -fs https://royaltsx-v5.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2) + appNewVersion=$(curl -fs https://royaltsx-v5.royalapps.com/updates_stable | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2) expectedTeamID="VXP8K9EDP6" ;; rstudio) @@ -2746,37 +2964,34 @@ santa) expectedTeamID="EQHXZ8M8AV" ;; scaleft) - name="ScaleFT" - type="pkg" - downloadURL="https://dist.scaleft.com/client-tools/mac/latest/ScaleFT.pkg" - appNewVersion=$(curl -sf "https://dist.scaleft.com/client-tools/mac/" | awk '/dir/{i++}i==2' | sed -nre 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p') - expectedTeamID="HV2G9Z3RP5" - blockingProcesses=( ScaleFT ) - ;;screamingfrogseospider) + name="ScaleFT" + type="pkg" + downloadURL="https://dist.scaleft.com/client-tools/mac/latest/ScaleFT.pkg" + appNewVersion=$(curl -sf "https://dist.scaleft.com/client-tools/mac/" | awk '/dir/{i++}i==2' | sed -nre 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p') + expectedTeamID="HV2G9Z3RP5" + blockingProcesses=( ScaleFT ) + ;; +screamingfrogseospider) name="Screaming Frog SEO Spider" type="dmg" - downloadURL="https://download.screamingfrog.co.uk/products/seo-spider/ScreamingFrogSEOSpider-14.3.dmg" + downloadURL=$(curl -fs "https://www.screamingfrog.co.uk/wp-content/themes/screamingfrog/inc/download-modal.php" | grep -i -o "https.*\.dmg" | head -1) + appNewVersion=$(print "$downloadURL" | sed -E 's/https.*\/[a-zA-Z]*-([0-9.]*)\.dmg/\1/g')".0" expectedTeamID="CAHEVC3HZC" ;; screencloudplayer) - # credit: AP Orlebeke (@apizz) - name="ScreenCloud Player" - type="dmg" - downloadURL=$(curl -sL "https://screencloud.com/download" | sed -n 's/^.*"url":"\([^"]*\)".*$/\1/p') - expectedTeamID="3C4F953K6P" - ;;screenflick) + # credit: AP Orlebeke (@apizz) + name="ScreenCloud Player" + type="dmg" + downloadURL=$(curl -sL "https://screencloud.com/download" | sed -n 's/^.*"url":"\([^"]*\)".*$/\1/p') + expectedTeamID="3C4F953K6P" + ;; +screenflick) # credit: Gabe Marchan (gabemarchan.com - @darklink87) name="Screenflick" type="zip" downloadURL="https://www.araelium.com/screenflick/downloads/Screenflick.zip" expectedTeamID="28488A87JB" ;; -sfsymbols) - name="SF Symbols" - type="pkgInDmg" - downloadURL="https://developer.apple.com/design/downloads/SF-Symbols.dmg" - expectedTeamID="Software Update" - ;; shield) # credit: Søren Theilgaard (@theilgaard) name="Shield" @@ -2825,12 +3040,12 @@ sizeup) expectedTeamID="GVZ7RF955D" ;; sketch) - name="Sketch" - type="zip" - downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | sed -E 's/.*href=\"(.*)\".?/\1/g') - appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page - expectedTeamID="WUGMZZ5K46" - ;; + name="Sketch" + type="zip" + downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | sed -E 's/.*href=\"(.*)\".?/\1/g') + appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page + expectedTeamID="WUGMZZ5K46" + ;; skype) name="Skype" type="dmg" @@ -2843,14 +3058,16 @@ slack) name="Slack" type="dmg" downloadURL="https://slack.com/ssb/download-osx-universal" # Universal -# if [[ $(arch) == "arm64" ]]; then -# downloadURL="https://slack.com/ssb/download-osx-silicon" -# elif [[ $(arch) == "i386" ]]; then -# downloadURL="https://slack.com/ssb/download-osx" -# fi - appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | tr -d '\r\n' | sed -E 's/.*macos\/([0-9.]*)\/.*/\1/g' ) + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | cut -d "/" -f6 ) expectedTeamID="BQR82RBBHL" ;; +smartgit) + name="SmartGit" + type="dmg" + downloadURL="https://www.syntevo.com$(curl -fs "https://www.syntevo.com/smartgit/download/" | grep -i -o -E "/downloads/.*/smartgit.*\.dmg")" + appNewVersion="$(curl -fs "https://www.syntevo.com/smartgit/changelog.txt" | grep -i -E "SmartGit *[0-9.]* *.*" | head -1 | awk '{print $2}')" + expectedTeamID="PHMY45PTNW" + ;; snagit|\ snagit2021|\ snagit2020) @@ -2887,10 +3104,20 @@ sourcetree) appNewVersion=$(echo "${downloadURL}" | sed -E 's/.*\/Sourcetree_([0-9.]*)_[0-9]*\.zip/\1/g') expectedTeamID="UPXU4CQZ5P" ;; +splashtopsos) + name="Splashtop SOS" + type="dmg" + downloadURL="https://download.splashtop.com/sos/SplashtopSOS.dmg" + expectedTeamID="CPQQ3AW49Y" + ;; spotify) name="Spotify" type="dmg" - downloadURL="https://download.scdn.co/Spotify.dmg" + if [[ $(arch) == arm64 ]]; then + downloadURL="https://download.scdn.co/SpotifyARM64.dmg" + elif [[ $(arch) == i386 ]]; then + downloadURL="https://download.scdn.co/Spotify.dmg" + fi # appNewVersion=$(curl -fs https://www.spotify.com/us/opensource/ | cat | grep -o ".*." | head -1 | cut -d ">" -f2 | cut -d "<" -f1) # does not result in the same version as downloaded expectedTeamID="2FNC3A47ZF" ;; @@ -2926,6 +3153,13 @@ swiftruntimeforcommandlinetools) downloadURL="https://updates.cdn-apple.com/2019/cert/061-41823-20191025-5efc5a59-d7dc-46d3-9096-396bb8cb4a73/SwiftRuntimeForCommandLineTools.dmg" expectedTeamID="Software Update" ;; +sync) + name="Sync" + type="dmg" + downloadURL="https://www.sync.com/download/apple/Sync.dmg" + appNewVersion="$(curl -fs "https://www.sync.com/blog/category/desktop/feed/" | xpath '(//channel/item/title)[1]' 2>/dev/null | sed -E 's/^.* ([0-9.]*) .*$/\1/g')" + expectedTeamID="7QR39CMJ3W" + ;; tableaudesktop) name="Tableau Desktop" type="pkgInDmg" @@ -2940,6 +3174,13 @@ tableaureader) downloadURL="https://www.tableau.com/downloads/reader/mac" expectedTeamID="QJ4XPRK37C" ;; +tageditor) + name="Tag Editor" + type="dmg" + downloadURL="https://amvidia.com/downloads/tag-editor-mac.dmg" + appNewVersion=curl -sf "https://amvidia.com/tag-editor" | grep -o -E '"softwareVersion":.'"{8}" | sed 's/\"//g' | awk -F ': ' '{print $2}' + expectedTeamID="F2TH9XX9CJ" + ;; taskpaper) # credit: Drew Diver (@grumpydrew on MacAdmins Slack) name="TaskPaper" @@ -3024,12 +3265,6 @@ thunderbird) expectedTeamID="43AQ936H96" blockingProcesses=( thunderbird ) ;; -tigervnc) - name="TigerVNC Viewer" - type="dmg" - downloadURL=https://dl.bintray.com/tigervnc/stable/$(curl -s -l https://dl.bintray.com/tigervnc/stable/ | grep .dmg | sed 's/
/dev/null | cut -d '"' -f 2)"
+    expectedTeamID="8U3Y4X5WDQ"
+    ;;
+zohoworkdrive)
+# Using this label expects you to agree to these:
+# License Areemant: https://www.zoho.com/workdrive/zohoworkdrive-license-agreement.html
+# Privacy policy: https://www.zoho.com/privacy.html
+    name="Zoho WorkDrive"
+    type="dmg"
+    lines=$(curl -fs https://www.zohowebstatic.com/sites/all/themes/zoho/scripts/workdrive.js | grep files-accl.zohopublic.com | tr '"' "\n")
+    downloadURL=$(echo "$lines" | grep -i "files-accl.zohopublic.com")$(echo "$lines" | grep -i -A17 "files-accl.zohopublic.com" | grep -i -A2 macintosh | tail -1)
+    expectedTeamID="TZ824L8Y37"
+    ;;
 zoom)
-    # credit: Isaac Ordonez, Mann consulting (@mannconsulting)
-    name="Zoom.us"
+    name="zoom.us"
     type="pkg"
     downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg"
-    appNewVersion=$(curl -fs -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" "https://zoom.us/download" | grep Version | head -n 1 | sed -E 's/.* ([0-9.]* \(.*\)).*/\1/') # credit: Søren Theilgaard (@theilgaard)
+    appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
     expectedTeamID="BJ4HAAB9B3"
-    blockingProcesses=( zoom.us )
     ;;
 zoomclient)
     name="zoom.us"
@@ -3292,15 +3564,22 @@ zoomclient)
     blockingProcesses=( zoom.us )
     #blockingProcessesMaxCPU="5"
     ;;
+zoomgov)
+    name="zoom.us"
+    type="pkg"
+    downloadURL="https://www.zoomgov.com/client/latest/ZoomInstallerIT.pkg"
+    appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
+    expectedTeamID="BJ4HAAB9B3"
+    ;;
 zoomrooms)
-    name="ZoomRooms"
-    type="pkg"
-    packageID="us.zoom.pkg.zp"
-    downloadURL="https://zoom.us/client/latest/ZoomRooms.pkg"
-    appNewVersion="$(curl -fsIL ${downloadURL} | grep -i location | cut -d "/" -f5)"
-    expectedTeamID="BJ4HAAB9B3"
+    name="ZoomRooms"
+    type="pkg"
+    packageID="us.zoom.pkg.zp"
+    downloadURL="https://zoom.us/client/latest/ZoomRooms.pkg"
+    appNewVersion="$(curl -fsIL ${downloadURL} | grep -i location | cut -d "/" -f5)"
+    expectedTeamID="BJ4HAAB9B3"
     blockingProcesses=( "ZoomPresence" )
-    ;;
+    ;;
 zulujdk11)
     name="Zulu JDK 11"
     type="pkgInDmg"
@@ -3341,18 +3620,18 @@ zulujdk15)
     appNewVersion=$(echo "$downloadURL" | cut -d "-" -f 1 | sed -e "s/.*zulu//") # Cannot be compared to anything
     ;;
 zulujdk8)
-     name="Zulu JDK 8"
-     type="pkgInDmg"
-     packageID="com.azulsystems.zulu.8"
-     if [[ $(arch) == i386 ]]; then
-       downloadURL=https://cdn.azul.com/zulu/bin/$(curl -fs "https://cdn.azul.com/zulu/bin/" | grep -Eio '">zulu8.*ca-jdk8.*x64.dmg(.*)' | cut -c3- | sed 's/<\/a>//' | sed -E 's/([0-9.]*)M//' | awk '{print $2 $1}' | sort | cut -c11- | tail -1)
-     elif [[ $(arch) == arm64 ]]; then
-       downloadURL=https://cdn.azul.com/zulu/bin/$(curl -fs "https://cdn.azul.com/zulu/bin/" | grep -Eio '">zulu8.*ca-jdk8.*aarch64.dmg(.*)' | cut -c3- | sed 's/<\/a>//' | sed -E 's/([0-9.]*)M//' | awk '{print $2 $1}' | sort | cut -c11- | tail -1)
-     fi
-     expectedTeamID="TDTHCUPYFR"
-     appCustomVersion(){ if [ -f "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Info.plist" ]; then /usr/bin/defaults read "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Info.plist" "CFBundleName" | sed 's/Zulu //'; fi }
-     appNewVersion=$(echo "$downloadURL" | cut -d "-" -f 1 | sed -e "s/.*zulu//") # Cannot be compared to anything
-     ;;
+    name="Zulu JDK 8"
+    type="pkgInDmg"
+    packageID="com.azulsystems.zulu.8"
+    if [[ $(arch) == i386 ]]; then
+        downloadURL=https://cdn.azul.com/zulu/bin/$(curl -fs "https://cdn.azul.com/zulu/bin/" | grep -Eio '">zulu8.*ca-jdk8.*x64.dmg(.*)' | cut -c3- | sed 's/<\/a>//' | sed -E 's/([0-9.]*)M//' | awk '{print $2 $1}' | sort | cut -c11- | tail -1)
+    elif [[ $(arch) == arm64 ]]; then
+        downloadURL=https://cdn.azul.com/zulu/bin/$(curl -fs "https://cdn.azul.com/zulu/bin/" | grep -Eio '">zulu8.*ca-jdk8.*aarch64.dmg(.*)' | cut -c3- | sed 's/<\/a>//' | sed -E 's/([0-9.]*)M//' | awk '{print $2 $1}' | sort | cut -c11- | tail -1)
+    fi
+    expectedTeamID="TDTHCUPYFR"
+    appCustomVersion(){ if [ -f "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Info.plist" ]; then /usr/bin/defaults read "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Info.plist" "CFBundleName" | sed 's/Zulu //'; fi }
+    appNewVersion=$(echo "$downloadURL" | cut -d "-" -f 1 | sed -e "s/.*zulu//") # Cannot be compared to anything
+    ;;
 *)
     # unknown label
     #printlog "unknown label $label"

From 7af1ce554e115aa05a6fd569563f794c3f5b9a0f Mon Sep 17 00:00:00 2001
From: Armin Briegel <1933192+scriptingosx@users.noreply.github.com>
Date: Thu, 14 Oct 2021 16:39:11 +0200
Subject: [PATCH 16/16] updated version

---
 fragments/version.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fragments/version.sh b/fragments/version.sh
index faef31a..a3df0a6 100644
--- a/fragments/version.sh
+++ b/fragments/version.sh
@@ -1 +1 @@
-0.7.0
+0.8.0