From 85800fc41f569f043e93dff4c568661818663838 Mon Sep 17 00:00:00 2001 From: Jake Date: Wed, 20 Oct 2021 12:00:23 -0400 Subject: [PATCH 01/48] create superhuman.sh --- fragments/labels/superhuman.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 fragments/labels/superhuman.sh diff --git a/fragments/labels/superhuman.sh b/fragments/labels/superhuman.sh new file mode 100644 index 0000000..3c757df --- /dev/null +++ b/fragments/labels/superhuman.sh @@ -0,0 +1,10 @@ +superhuman) + name="superhuman" + type="dmg" + if [[ $(arch) == "arm64" ]]; then + downloadURL="https://download.superhuman.com/Superhuman-arm64.dmg" + elif [[ $(arch) == "i386" ]]; then + downloadURL="https://download.superhuman.com/Superhuman.dmg" + fi + expectedTeamID="6XHFYUTQGX" + ;; From 22499f5d9838725642e6168f9320ccd1916b913f Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 21 Oct 2021 10:03:01 -0400 Subject: [PATCH 02/48] create logseq.sh --- fragments/labels/logseq.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 fragments/labels/logseq.sh diff --git a/fragments/labels/logseq.sh b/fragments/labels/logseq.sh new file mode 100644 index 0000000..c868662 --- /dev/null +++ b/fragments/labels/logseq.sh @@ -0,0 +1,12 @@ +logseq) + name="Logseq" + type="dmg" + if [[ $(arch) == i386 ]]; then + downloadURL=$(curl --silent --fail "https://api.github.com/repos/logseq/logseq/releases/latest" \ + | awk -F '"' "/browser_download_url/ && /logseq-darwin/ && /.dmg/ && ! /arm64/ { print \$4 }") + elif [[ $(arch) == arm64 ]]; then + downloadURL=$(downloadURLFromGit logseq logseq) + fi + appNewVersion=$(versionFromGit logseq logseq) + expectedTeamID="3K44EUN829" + ;; From ca6614f59134d86a58c743cf10b086364c4511d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 5 Nov 2021 19:49:35 +0100 Subject: [PATCH 03/48] Update logseq.sh By using variable `archiveName` we can let Installomator find the right archive in the github list of possibilities. I think this is a more cleaner approach. --- fragments/labels/logseq.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/fragments/labels/logseq.sh b/fragments/labels/logseq.sh index c868662..d51caff 100644 --- a/fragments/labels/logseq.sh +++ b/fragments/labels/logseq.sh @@ -1,10 +1,11 @@ logseq) name="Logseq" type="dmg" - if [[ $(arch) == i386 ]]; then - downloadURL=$(curl --silent --fail "https://api.github.com/repos/logseq/logseq/releases/latest" \ - | awk -F '"' "/browser_download_url/ && /logseq-darwin/ && /.dmg/ && ! /arm64/ { print \$4 }") - elif [[ $(arch) == arm64 ]]; then + if [[ $(arch) == "arm64" ]]; then + archiveName="darwin-arm64-[0-9.]*.dmg" + downloadURL=$(downloadURLFromGit logseq logseq) + elif [[ $(arch) == "i386" ]]; then + archiveName="darwin-x64-[0-9.]*.dmg" downloadURL=$(downloadURLFromGit logseq logseq) fi appNewVersion=$(versionFromGit logseq logseq) From 15f2add5e1a86b5d30db6be75bb279883fa0d12a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 5 Nov 2021 20:46:37 +0100 Subject: [PATCH 04/48] Updated msupdate call Separate lines for running `msupdate --list` before running the update tool, but currently it runs if just msupdate exist, and not only if we run the updateTool. --- fragments/labels/microsoftcompanyportal.sh | 5 ++++- fragments/labels/microsoftdefenderatp.sh | 5 ++++- fragments/labels/microsoftedge.sh | 5 ++++- fragments/labels/microsoftedgeenterprisestable.sh | 5 ++++- fragments/labels/microsoftexcel.sh | 5 ++++- fragments/labels/microsoftoffice365.sh | 5 ++++- fragments/labels/microsoftofficebusinesspro.sh | 5 ++++- fragments/labels/microsoftonedrive.sh | 5 ++++- fragments/labels/microsoftonenote.sh | 5 ++++- fragments/labels/microsoftoutlook.sh | 5 ++++- fragments/labels/microsoftpowerpoint.sh | 5 ++++- fragments/labels/microsoftremotedesktop.sh | 5 ++++- fragments/labels/microsoftskypeforbusiness.sh | 5 ++++- fragments/labels/microsoftword.sh | 5 ++++- 14 files changed, 56 insertions(+), 14 deletions(-) diff --git a/fragments/labels/microsoftcompanyportal.sh b/fragments/labels/microsoftcompanyportal.sh index 335d3d0..1b86700 100644 --- a/fragments/labels/microsoftcompanyportal.sh +++ b/fragments/labels/microsoftcompanyportal.sh @@ -5,6 +5,9 @@ microsoftcompanyportal) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.intunecompanyportal.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/CompanyPortal_.*pkg" | cut -d "_" -f 2 | cut -d "-" -f 1) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps IMCP01 ) ;; diff --git a/fragments/labels/microsoftdefenderatp.sh b/fragments/labels/microsoftdefenderatp.sh index 964b69a..1dab6a6 100644 --- a/fragments/labels/microsoftdefenderatp.sh +++ b/fragments/labels/microsoftdefenderatp.sh @@ -5,6 +5,9 @@ microsoftdefenderatp) appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.defender.standalone"]/version' 2>/dev/null | sed -E 's/([0-9.]*) .*/\1/') # No version number in download url expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps WDAV00 ) ;; diff --git a/fragments/labels/microsoftedge.sh b/fragments/labels/microsoftedge.sh index 2089f4f..b4319fc 100644 --- a/fragments/labels/microsoftedge.sh +++ b/fragments/labels/microsoftedge.sh @@ -6,6 +6,9 @@ microsoftedgeconsumerstable) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.edge"]/cfbundleversion' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/MicrosoftEdge.*pkg" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps EDGE01 ) ;; diff --git a/fragments/labels/microsoftedgeenterprisestable.sh b/fragments/labels/microsoftedgeenterprisestable.sh index 2b85afa..60133be 100644 --- a/fragments/labels/microsoftedgeenterprisestable.sh +++ b/fragments/labels/microsoftedgeenterprisestable.sh @@ -5,6 +5,9 @@ microsoftedgeenterprisestable) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.edge"]/version' 2>/dev/null | sed -E 's/([0-9.]*) .*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/MicrosoftEdge.*pkg" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps EDGE01 ) ;; diff --git a/fragments/labels/microsoftexcel.sh b/fragments/labels/microsoftexcel.sh index 9d18b59..614c65d 100644 --- a/fragments/labels/microsoftexcel.sh +++ b/fragments/labels/microsoftexcel.sh @@ -5,6 +5,9 @@ microsoftexcel) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.excel.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps XCEL2019 ) ;; diff --git a/fragments/labels/microsoftoffice365.sh b/fragments/labels/microsoftoffice365.sh index 3ef3429..5765fca 100644 --- a/fragments/labels/microsoftoffice365.sh +++ b/fragments/labels/microsoftoffice365.sh @@ -7,7 +7,10 @@ microsoftoffice365) expectedTeamID="UBF8T346G9" # using MS PowerPoint as the 'stand-in' for the entire suite #appName="Microsoft PowerPoint.app" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" ) - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install ) ;; diff --git a/fragments/labels/microsoftofficebusinesspro.sh b/fragments/labels/microsoftofficebusinesspro.sh index cbc3dd2..e0bbeb2 100644 --- a/fragments/labels/microsoftofficebusinesspro.sh +++ b/fragments/labels/microsoftofficebusinesspro.sh @@ -6,7 +6,10 @@ microsoftofficebusinesspro) expectedTeamID="UBF8T346G9" # using MS PowerPoint as the 'stand-in' for the entire suite appName="Microsoft PowerPoint.app" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" "Teams") - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install ) ;; diff --git a/fragments/labels/microsoftonedrive.sh b/fragments/labels/microsoftonedrive.sh index 25a25ff..bf7db61 100644 --- a/fragments/labels/microsoftonedrive.sh +++ b/fragments/labels/microsoftonedrive.sh @@ -5,6 +5,9 @@ microsoftonedrive) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.onedrive.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | cut -d "/" -f 6 | cut -d "." -f 1-3) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps ONDR18 ) ;; diff --git a/fragments/labels/microsoftonenote.sh b/fragments/labels/microsoftonenote.sh index bff8ede..7e44582 100644 --- a/fragments/labels/microsoftonenote.sh +++ b/fragments/labels/microsoftonenote.sh @@ -5,6 +5,9 @@ microsoftonenote) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.onenote.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps ONMC2019 ) ;; diff --git a/fragments/labels/microsoftoutlook.sh b/fragments/labels/microsoftoutlook.sh index 583de23..bcc6e08 100644 --- a/fragments/labels/microsoftoutlook.sh +++ b/fragments/labels/microsoftoutlook.sh @@ -5,6 +5,9 @@ microsoftoutlook) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.outlook.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps OPIM2019 ) ;; diff --git a/fragments/labels/microsoftpowerpoint.sh b/fragments/labels/microsoftpowerpoint.sh index 0bebefc..51e205e 100644 --- a/fragments/labels/microsoftpowerpoint.sh +++ b/fragments/labels/microsoftpowerpoint.sh @@ -5,6 +5,9 @@ microsoftpowerpoint) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.powerpoint.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps PPT32019 ) ;; diff --git a/fragments/labels/microsoftremotedesktop.sh b/fragments/labels/microsoftremotedesktop.sh index a071372..f61c55d 100644 --- a/fragments/labels/microsoftremotedesktop.sh +++ b/fragments/labels/microsoftremotedesktop.sh @@ -5,6 +5,9 @@ microsoftremotedesktop) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.remotedesktop.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_Remote_Desktop.*pkg" | cut -d "_" -f 4) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps MSRD10 ) ;; diff --git a/fragments/labels/microsoftskypeforbusiness.sh b/fragments/labels/microsoftskypeforbusiness.sh index f4526b1..60d4485 100644 --- a/fragments/labels/microsoftskypeforbusiness.sh +++ b/fragments/labels/microsoftskypeforbusiness.sh @@ -5,6 +5,9 @@ microsoftskypeforbusiness) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.skypeforbusiness.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps MSFB16 ) ;; diff --git a/fragments/labels/microsoftword.sh b/fragments/labels/microsoftword.sh index 4acebdd..2a10a48 100644 --- a/fragments/labels/microsoftword.sh +++ b/fragments/labels/microsoftword.sh @@ -5,6 +5,9 @@ microsoftword) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.word.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list + fi + updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" updateToolArguments=( --install --apps MSWD2019 ) ;; From 75addfe8ea4819ad06111eb22de72a2b58588e36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 5 Nov 2021 21:12:34 +0100 Subject: [PATCH 05/48] Update microsoftoffice365.sh --- fragments/labels/microsoftoffice365.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fragments/labels/microsoftoffice365.sh b/fragments/labels/microsoftoffice365.sh index 5765fca..c6b240e 100644 --- a/fragments/labels/microsoftoffice365.sh +++ b/fragments/labels/microsoftoffice365.sh @@ -7,7 +7,8 @@ microsoftoffice365) expectedTeamID="UBF8T346G9" # using MS PowerPoint as the 'stand-in' for the entire suite #appName="Microsoft PowerPoint.app" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" ) From 1931973b54738b9306d5217b48ce5dd08893445d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 5 Nov 2021 21:30:26 +0100 Subject: [PATCH 06/48] Fixed INSTALL=force no matter the version If `INSTALL=force` is used, then previously we would need installed version and appNewVersion to be equal for the updateTool to be skipped. Not anymore. --- fragments/main.sh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/fragments/main.sh b/fragments/main.sh index dfba2c9..6a5cd93 100644 --- a/fragments/main.sh +++ b/fragments/main.sh @@ -117,6 +117,10 @@ printlog "appversion: $appversion" # MARK: Exit if new version is the same as installed version (appNewVersion specified) # credit: Søren Theilgaard (@theilgaard) +if [[ $INSTALL == "force" ]]; then + printlog "Using force to install, so not using updateTool." + updateTool="" +fi if [[ -n $appNewVersion ]]; then printlog "Latest version of $name is $appNewVersion" if [[ $appversion == $appNewVersion ]]; then @@ -129,9 +133,6 @@ if [[ -n $appNewVersion ]]; then displaynotification "$message" "No update for $name!" fi cleanupAndExit 0 "No newer version." - else - printlog "Using force to install anyway. Not using updateTool." - updateTool="" fi else printlog "DEBUG mode enabled, not exiting, but there is no new version of app." @@ -139,10 +140,6 @@ if [[ -n $appNewVersion ]]; then fi else printlog "Latest version not specified." - if [[ $INSTALL == "force" ]]; then - printlog "Using force to install, so not using updateTool." - updateTool="" - fi fi # MARK: check if this is an Update and we can use updateTool From c5a719b176b301265a7b3891743737a30c19b71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 5 Nov 2021 21:32:25 +0100 Subject: [PATCH 07/48] microsoft labels --- fragments/labels/microsoftcompanyportal.sh | 3 ++- fragments/labels/microsoftdefenderatp.sh | 3 ++- fragments/labels/microsoftedge.sh | 3 ++- fragments/labels/microsoftedgeenterprisestable.sh | 3 ++- fragments/labels/microsoftexcel.sh | 3 ++- fragments/labels/microsoftofficebusinesspro.sh | 3 ++- fragments/labels/microsoftonedrive.sh | 3 ++- fragments/labels/microsoftonenote.sh | 3 ++- fragments/labels/microsoftoutlook.sh | 3 ++- fragments/labels/microsoftpowerpoint.sh | 3 ++- fragments/labels/microsoftremotedesktop.sh | 3 ++- fragments/labels/microsoftskypeforbusiness.sh | 3 ++- fragments/labels/microsoftword.sh | 3 ++- 13 files changed, 26 insertions(+), 13 deletions(-) diff --git a/fragments/labels/microsoftcompanyportal.sh b/fragments/labels/microsoftcompanyportal.sh index 1b86700..6285730 100644 --- a/fragments/labels/microsoftcompanyportal.sh +++ b/fragments/labels/microsoftcompanyportal.sh @@ -5,7 +5,8 @@ microsoftcompanyportal) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.intunecompanyportal.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/CompanyPortal_.*pkg" | cut -d "_" -f 2 | cut -d "-" -f 1) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftdefenderatp.sh b/fragments/labels/microsoftdefenderatp.sh index 1dab6a6..a156277 100644 --- a/fragments/labels/microsoftdefenderatp.sh +++ b/fragments/labels/microsoftdefenderatp.sh @@ -5,7 +5,8 @@ microsoftdefenderatp) appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.defender.standalone"]/version' 2>/dev/null | sed -E 's/([0-9.]*) .*/\1/') # No version number in download url expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftedge.sh b/fragments/labels/microsoftedge.sh index b4319fc..7c72af7 100644 --- a/fragments/labels/microsoftedge.sh +++ b/fragments/labels/microsoftedge.sh @@ -6,7 +6,8 @@ microsoftedgeconsumerstable) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.edge"]/cfbundleversion' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/MicrosoftEdge.*pkg" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftedgeenterprisestable.sh b/fragments/labels/microsoftedgeenterprisestable.sh index 60133be..22c6667 100644 --- a/fragments/labels/microsoftedgeenterprisestable.sh +++ b/fragments/labels/microsoftedgeenterprisestable.sh @@ -5,7 +5,8 @@ microsoftedgeenterprisestable) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.edge"]/version' 2>/dev/null | sed -E 's/([0-9.]*) .*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/MicrosoftEdge.*pkg" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftexcel.sh b/fragments/labels/microsoftexcel.sh index 614c65d..7c57ac0 100644 --- a/fragments/labels/microsoftexcel.sh +++ b/fragments/labels/microsoftexcel.sh @@ -5,7 +5,8 @@ microsoftexcel) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.excel.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftofficebusinesspro.sh b/fragments/labels/microsoftofficebusinesspro.sh index e0bbeb2..739a21b 100644 --- a/fragments/labels/microsoftofficebusinesspro.sh +++ b/fragments/labels/microsoftofficebusinesspro.sh @@ -6,7 +6,8 @@ microsoftofficebusinesspro) expectedTeamID="UBF8T346G9" # using MS PowerPoint as the 'stand-in' for the entire suite appName="Microsoft PowerPoint.app" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi blockingProcesses=( "Microsoft AutoUpdate" "Microsoft Word" "Microsoft PowerPoint" "Microsoft Excel" "Microsoft OneNote" "Microsoft Outlook" "OneDrive" "Teams") diff --git a/fragments/labels/microsoftonedrive.sh b/fragments/labels/microsoftonedrive.sh index bf7db61..722a7a4 100644 --- a/fragments/labels/microsoftonedrive.sh +++ b/fragments/labels/microsoftonedrive.sh @@ -5,7 +5,8 @@ microsoftonedrive) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.onedrive.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | cut -d "/" -f 6 | cut -d "." -f 1-3) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftonenote.sh b/fragments/labels/microsoftonenote.sh index 7e44582..c3ffea0 100644 --- a/fragments/labels/microsoftonenote.sh +++ b/fragments/labels/microsoftonenote.sh @@ -5,7 +5,8 @@ microsoftonenote) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.onenote.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftoutlook.sh b/fragments/labels/microsoftoutlook.sh index bcc6e08..ef48e10 100644 --- a/fragments/labels/microsoftoutlook.sh +++ b/fragments/labels/microsoftoutlook.sh @@ -5,7 +5,8 @@ microsoftoutlook) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.outlook.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftpowerpoint.sh b/fragments/labels/microsoftpowerpoint.sh index 51e205e..f00e30e 100644 --- a/fragments/labels/microsoftpowerpoint.sh +++ b/fragments/labels/microsoftpowerpoint.sh @@ -5,7 +5,8 @@ microsoftpowerpoint) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.powerpoint.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftremotedesktop.sh b/fragments/labels/microsoftremotedesktop.sh index f61c55d..2707be4 100644 --- a/fragments/labels/microsoftremotedesktop.sh +++ b/fragments/labels/microsoftremotedesktop.sh @@ -5,7 +5,8 @@ microsoftremotedesktop) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.remotedesktop.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_Remote_Desktop.*pkg" | cut -d "_" -f 4) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftskypeforbusiness.sh b/fragments/labels/microsoftskypeforbusiness.sh index 60d4485..bfc2de9 100644 --- a/fragments/labels/microsoftskypeforbusiness.sh +++ b/fragments/labels/microsoftskypeforbusiness.sh @@ -5,7 +5,8 @@ microsoftskypeforbusiness) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.skypeforbusiness.standalone"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" diff --git a/fragments/labels/microsoftword.sh b/fragments/labels/microsoftword.sh index 2a10a48..801fb48 100644 --- a/fragments/labels/microsoftword.sh +++ b/fragments/labels/microsoftword.sh @@ -5,7 +5,8 @@ microsoftword) #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.word.standalone.365"]/cfbundleshortversionstring' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3 | cut -d "." -f 1-2) expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" ]]; then + if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then + printlog "Running msupdate --list" "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list fi updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" From 39a212bee98c79c8e3992a49a4007b9dd33f3b23 Mon Sep 17 00:00:00 2001 From: Raptor399 Date: Tue, 9 Nov 2021 11:27:30 +0100 Subject: [PATCH 08/48] Added packedID so Box Tools installs correct Fixes #310 --- Installomator.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Installomator.sh b/Installomator.sh index 1a82401..294da3c 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -1280,6 +1280,7 @@ boxsync) boxtools) name="Box Tools" type="pkg" + packageID="com.box.boxtools.installer.boxedit" downloadURL="https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg" expectedTeamID="M683GB7CPW" ;; From 7e75683d769af92184d594bafdd278b5484197be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 08:57:31 +0100 Subject: [PATCH 09/48] Adobe CC with CLIInstaller MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I was looking into installing Adobe CC fully (Isaac has done the hard part), and we can add `CLIInstaller` and `CLIArguments` to get it fully installed. This implementation is slightly changed from Isaacs. ``` % sudo /Users/st/Documents/GitHub/Installomator/utils/assemble.sh -r adobecreativeclouddesktop DEBUG=0 INSTALL=force 2021-11-10 08:56:00 adobecreativeclouddesktop setting variable from argument DEBUG=0 2021-11-10 08:56:00 adobecreativeclouddesktop setting variable from argument INSTALL=force 2021-11-10 08:56:00 adobecreativeclouddesktop ################## Start Installomator v. 0.8.0 2021-11-10 08:56:00 adobecreativeclouddesktop ################## adobecreativeclouddesktop 2021-11-10 08:56:00 adobecreativeclouddesktop BLOCKING_PROCESS_ACTION=tell_user 2021-11-10 08:56:00 adobecreativeclouddesktop NOTIFY=success 2021-11-10 08:56:00 adobecreativeclouddesktop LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-10 08:56:00 adobecreativeclouddesktop no blocking processes defined, using Creative Cloud as default 2021-11-10 08:56:00 adobecreativeclouddesktop Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.0LNrXCQX 2021-11-10 08:56:01 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 08:56:01 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 08:56:01 adobecreativeclouddesktop appversion: 2021-11-10 08:56:01 adobecreativeclouddesktop Latest version of Creative Cloud is 5.6.0.788 2021-11-10 08:56:01 adobecreativeclouddesktop Downloading https://ccmdl.adobe.com/AdobeProducts/KCCC/CCD/5_6_0/macarm64/ACCCx5_6_0_788.dmg to Creative Cloud.dmg 2021-11-10 08:56:30 adobecreativeclouddesktop no more blocking processes, continue with update 2021-11-10 08:56:30 adobecreativeclouddesktop Installing Creative Cloud 2021-11-10 08:56:30 adobecreativeclouddesktop Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.0LNrXCQX/Creative Cloud.dmg 2021-11-10 08:56:30 adobecreativeclouddesktop Mounted: /Volumes/Creative Cloud 2021-11-10 08:56:30 adobecreativeclouddesktop Verifying: /Volumes/Creative Cloud/Install.app 2021-11-10 08:56:30 adobecreativeclouddesktop Team ID matching: JQ525L2MZD (expected: JQ525L2MZD ) 2021-11-10 08:56:30 adobecreativeclouddesktop Downloaded version of Creative Cloud is 2.6.0.46 (replacing version ). 2021-11-10 08:56:30 adobecreativeclouddesktop CLIInstaller exists, running installer command /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 08:56:34 adobecreativeclouddesktop Debugging enabled, update tool output was: objc[51900]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a018) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10fa75790). One of the two will be used. Which one is undefined. objc[51900]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a068) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10fa757e0). One of the two will be used. Which one is undefined. objc[51900]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a018) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x110a87790). One of the two will be used. Which one is undefined. objc[51900]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a068) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x110a877e0). One of the two will be used. Which one is undefined. Starting installer... Installation successful. 2021-11-10 08:56:34 adobecreativeclouddesktop Finishing… 2021-11-10 08:56:44 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 08:56:44 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 08:56:44 adobecreativeclouddesktop Installed Creative Cloud 2021-11-10 08:56:44 adobecreativeclouddesktop notifying 2021-11-10 08:56:44 adobecreativeclouddesktop Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.0LNrXCQX 2021-11-10 08:56:44 adobecreativeclouddesktop Unmounting /Volumes/Creative Cloud "disk4" ejected. 2021-11-10 08:56:45 adobecreativeclouddesktop App not closed, so no reopen. 2021-11-10 08:56:45 adobecreativeclouddesktop ################## End Installomator, exit code 0 ``` --- fragments/functions.sh | 17 +++++++++++++++-- fragments/labels/adobecreativeclouddesktop.sh | 16 ++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 fragments/labels/adobecreativeclouddesktop.sh diff --git a/fragments/functions.sh b/fragments/functions.sh index 446bbd5..6475479 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -369,7 +369,9 @@ installAppWithPath() { # $1: path to app to install in $targetDir # not running as root cleanupAndExit 6 "not running as root, exiting" fi - + + # Test if variable CLIInstaller is set + if [[ -z $CLIInstaller ]]; then # remove existing application if [ -e "$targetDir/$appName" ]; then printlog "Removing existing $targetDir/$appName" @@ -382,7 +384,6 @@ installAppWithPath() { # $1: path to app to install in $targetDir cleanupAndExit 7 "Error while copying" fi - # set ownership to current user if [ "$currentUser" != "loginwindow" ]; then printlog "Changing owner to $currentUser" @@ -391,6 +392,18 @@ installAppWithPath() { # $1: path to app to install in $targetDir printlog "No user logged in, not changing user" fi + elif [[ ! -z $CLIInstaller ]]; then + mountname=$(dirname $appPath) + printlog "CLIInstaller exists, running installer command $mountname/$CLIInstaller $CLIArguments" #INFO + + CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) + CLIstatus=$(echo $?) + logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" + cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error: $logoutput" #ERROR + fi + printlog "Debugging enabled, update tool output was: $logoutput" #DEBUG + fi + } mountDMG() { diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh new file mode 100644 index 0000000..9faef3f --- /dev/null +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -0,0 +1,16 @@ +adobecreativeclouddesktop) + appName="Install.app" + name="Creative Cloud" + type="dmg" + 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) + 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) + 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) + CLIInstaller="Install.app/Contents/MacOS/Install" + CLIArguments=(--mode=silent) + expectedTeamID="JQ525L2MZD" + Company="Adobe" + ;; From a2ee2ccddee6f9246b8b7baaa5286984addfbc97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 08:58:05 +0100 Subject: [PATCH 10/48] Update functions.sh --- fragments/functions.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fragments/functions.sh b/fragments/functions.sh index 6475479..777b61e 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -399,6 +399,8 @@ installAppWithPath() { # $1: path to app to install in $targetDir CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) CLIstatus=$(echo $?) logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" + + if [ $CLIstatus -ne 0 ] ; then cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error: $logoutput" #ERROR fi printlog "Debugging enabled, update tool output was: $logoutput" #DEBUG From ca772a6d2856b21d5c87750ac77e26f77879d6a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 09:06:04 +0100 Subject: [PATCH 11/48] Update adobecreativeclouddesktop.sh --- fragments/labels/adobecreativeclouddesktop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 9faef3f..30b11e2 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -1,6 +1,6 @@ adobecreativeclouddesktop) - appName="Install.app" name="Creative Cloud" + appName="Install.app" type="dmg" 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) From a42c624a7cda847509242df4bd4ebb32d1c6ed89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 09:39:39 +0100 Subject: [PATCH 12/48] `CLIInstaller` and `CLIArguments` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Explained… --- fragments/header.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/fragments/header.sh b/fragments/header.sh index 476d54e..1938b4d 100644 --- a/fragments/header.sh +++ b/fragments/header.sh @@ -198,8 +198,19 @@ REOPEN="yes" # $updateTool $updateArguments # Will be run instead of of downloading and installing a complete new version. # Use this when the updateTool does differential and optimized downloads. -# e.g. msupdate +# e.g. msupdate on various Microsoft labels # # - updateToolRunAsCurrentUser: # When this variable is set (any value), $updateTool will be run as the current user. # +# - CLIInstaller: +# - CLIArguments: +# If the downloaded dmg is actually an installer that we can call using CLI, +# we can use these two variables for what to call. +# We need to define `name` for the installed app (to be version checked), as well +# as `appName` for the installer binary. So Installomator will add the path to this +# binary, and it will be called like this: +# $CLIInstaller $CLIArguments +# We can support a whole range of other software titles by implementing this. +# See label adobecreativeclouddesktop +# From 3ef4f1102534e73c59134765afce77f6fd793fbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 09:44:09 +0100 Subject: [PATCH 13/48] `CLIInstaller` and `CLIArguments` --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cfb90a..b90d9fd 100644 --- a/README.md +++ b/README.md @@ -372,11 +372,19 @@ Depending on the application or pkg there are a few more variables you can or ne `$updateTool $updateArguments` Will be run instead of of downloading and installing a complete new version. Use this when the `updateTool` does differential and optimized downloads. - e.g. `msupdate` (see microsoft installations) + e.g. `msupdate` (see various Microsoft installations). - `updateToolRunAsCurrentUser`: When this variable is set (any value), `$updateTool` will be run as the current user. Default is unset and +- `CLIInstaller`: +- `CLIArguments`: + If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. + We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to this binary, and it will be called like this: + `$CLIInstaller $CLIArguments` + We can support a whole range of other software titles by implementing this. + See label adobecreativeclouddesktop. + ### Configuration from Arguments You can provide a configuration variable, such as `DEBUG` or `NOTIFY` as an argument in the form `VAR=value`. For example: From 638f7983dda0eab311c1d964d79bf10def55dc01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 11:34:30 +0100 Subject: [PATCH 14/48] Not using `mountname` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes to the label, so path to CLIInstaller does not contain the name of the app, as that is already in the variable `appPath`. Still needing to decide on debug logging or what kind of message we want there. But this is succesfull: ``` % sudo /Users/st/Documents/GitHub/Installomator/utils/assemble.sh -r adobecreativeclouddesktop DEBUG=0 INSTALL=force Password: 2021-11-10 11:30:51 adobecreativeclouddesktop setting variable from argument DEBUG=0 2021-11-10 11:30:51 adobecreativeclouddesktop setting variable from argument INSTALL=force 2021-11-10 11:30:51 adobecreativeclouddesktop ################## Start Installomator v. 0.8.0 2021-11-10 11:30:51 adobecreativeclouddesktop ################## adobecreativeclouddesktop 2021-11-10 11:30:51 adobecreativeclouddesktop BLOCKING_PROCESS_ACTION=tell_user 2021-11-10 11:30:51 adobecreativeclouddesktop NOTIFY=success 2021-11-10 11:30:52 adobecreativeclouddesktop LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-10 11:30:52 adobecreativeclouddesktop no blocking processes defined, using Creative Cloud as default 2021-11-10 11:30:52 adobecreativeclouddesktop Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.wMH45Qfi 2021-11-10 11:30:52 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 11:30:52 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 11:30:52 adobecreativeclouddesktop appversion: 2021-11-10 11:30:52 adobecreativeclouddesktop Latest version of Creative Cloud is 5.6.0.788 2021-11-10 11:30:52 adobecreativeclouddesktop Downloading https://ccmdl.adobe.com/AdobeProducts/KCCC/CCD/5_6_0/macarm64/ACCCx5_6_0_788.dmg to Creative Cloud.dmg 2021-11-10 11:31:41 adobecreativeclouddesktop no more blocking processes, continue with update 2021-11-10 11:31:41 adobecreativeclouddesktop Installing Creative Cloud 2021-11-10 11:31:41 adobecreativeclouddesktop Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.wMH45Qfi/Creative Cloud.dmg 2021-11-10 11:31:42 adobecreativeclouddesktop Mounted: /Volumes/Creative Cloud 2 2021-11-10 11:31:42 adobecreativeclouddesktop Verifying: /Volumes/Creative Cloud 2/Install.app 2021-11-10 11:31:42 adobecreativeclouddesktop Team ID matching: JQ525L2MZD (expected: JQ525L2MZD ) 2021-11-10 11:31:42 adobecreativeclouddesktop Downloaded version of Creative Cloud is 2.6.0.46 (replacing version ). 2021-11-10 11:31:42 adobecreativeclouddesktop CLIInstaller exists, running installer command /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 11:31:46 adobecreativeclouddesktop Succesfully ran /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 11:31:46 adobecreativeclouddesktop Debugging enabled, update tool output was: objc[71312]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f018) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10dc38790). One of the two will be used. Which one is undefined. objc[71312]: Class ProxyManager is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f068) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10dc387e0). One of the two will be used. Which one is undefined. objc[71312]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f018) and /Volumes/Creative Cloud 2/resources/AdobePIM.dylib (0x10e4e6790). One of the two will be used. Which one is undefined. objc[71312]: Class ProxyManager is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f068) and /Volumes/Creative Cloud 2/resources/AdobePIM.dylib (0x10e4e67e0). One of the two will be used. Which one is undefined. Starting installer... Installation successful. 2021-11-10 11:31:46 adobecreativeclouddesktop Finishing… 2021-11-10 11:31:56 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 11:31:56 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 11:31:56 adobecreativeclouddesktop Installed Creative Cloud 2021-11-10 11:31:56 adobecreativeclouddesktop notifying 2021-11-10 11:31:56 adobecreativeclouddesktop Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.wMH45Qfi 2021-11-10 11:31:56 adobecreativeclouddesktop Unmounting /Volumes/Creative Cloud 2 "disk6" ejected. 2021-11-10 11:31:57 adobecreativeclouddesktop App not closed, so no reopen. 2021-11-10 11:31:57 adobecreativeclouddesktop ################## End Installomator, exit code 0 ``` --- fragments/functions.sh | 12 +++++++----- fragments/labels/adobecreativeclouddesktop.sh | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/fragments/functions.sh b/fragments/functions.sh index 777b61e..0a47499 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -393,17 +393,19 @@ installAppWithPath() { # $1: path to app to install in $targetDir fi elif [[ ! -z $CLIInstaller ]]; then - mountname=$(dirname $appPath) - printlog "CLIInstaller exists, running installer command $mountname/$CLIInstaller $CLIArguments" #INFO + #mountname=$(dirname $appPath) + printlog "CLIInstaller exists, running installer command $appPath/$CLIInstaller $CLIArguments" #INFO - CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) + CLIoutput=$("$appPath/$CLIInstaller" "${CLIArguments[@]}" 2>&1) CLIstatus=$(echo $?) logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" if [ $CLIstatus -ne 0 ] ; then - cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error: $logoutput" #ERROR + cleanupAndExit 3 "Error installing $appPath/$CLIInstaller $CLIArguments error:\n$logoutput" #ERROR + else + printlog "Succesfully ran $appPath/$CLIInstaller $CLIArguments" fi - printlog "Debugging enabled, update tool output was: $logoutput" #DEBUG + printlog "Debugging enabled, update tool output was:\n$logoutput" #DEBUG fi } diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 30b11e2..8388161 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -9,7 +9,7 @@ adobecreativeclouddesktop) 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) - CLIInstaller="Install.app/Contents/MacOS/Install" + CLIInstaller="Contents/MacOS/Install" # "Install.app/Contents/MacOS/Install" CLIArguments=(--mode=silent) expectedTeamID="JQ525L2MZD" Company="Adobe" From 800c356b0135e5a887c4449101f73b7cb077a813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 15:29:59 +0100 Subject: [PATCH 15/48] updae/installation detection --- fragments/functions.sh | 14 ++++++++++++-- fragments/main.sh | 18 +++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/fragments/functions.sh b/fragments/functions.sh index 446bbd5..4e30ed7 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -148,6 +148,7 @@ getAppVersion() { appversion="$(pkgutil --pkg-info-plist ${packageID} 2>/dev/null | grep -A 1 pkg-version | tail -1 | sed -E 's/.*>([0-9.]*)<.*/\1/g')" if [[ $appversion != "" ]]; then printlog "found packageID $packageID installed, version $appversion" + updateDetected="YES" return else printlog "No version found using packageID $packageID" @@ -162,7 +163,11 @@ getAppVersion() { else applist=$(mdfind "kind:application $appName" -0 ) fi - printlog "App(s) found: ${applist}" + if [[ -z applist ]]; then + printlog "No previous app found" + else + printlog "App(s) found: ${applist}" + fi appPathArray=( ${(0)applist} ) @@ -173,6 +178,7 @@ 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" + updateDetected="YES" # 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." @@ -612,7 +618,11 @@ finishing() { if [[ $currentUser != "loginwindow" && ( $NOTIFY == "success" || $NOTIFY == "all" ) ]]; then printlog "notifying" - displaynotification "$message" "$name update/installation complete!" + if [[ $updateDetected == "YES" ]]; then + displaynotification "$message" "$name update complete!" + else + displaynotification "$message" "$name installation complete!" + fi fi } diff --git a/fragments/main.sh b/fragments/main.sh index dfba2c9..e7708ee 100644 --- a/fragments/main.sh +++ b/fragments/main.sh @@ -169,14 +169,22 @@ else printlog "Downloading $downloadURL to $archiveName" if [[ $currentUser != "loginwindow" && $NOTIFY == "all" ]]; then printlog "notifying" - displaynotification "Downloading $name update" "Download in progress …" + if [[ $updateDetected == "YES" ]]; then + displaynotification "Downloading $name update" "Download in progress …" + else + displaynotification "Downloading new $name" "Download in progress …" + fi fi if ! curl --location --fail --silent "$downloadURL" -o "$archiveName"; then printlog "error downloading $downloadURL" message="$name update/installation failed. This will be logged, so IT can follow up." if [[ $currentUser != "loginwindow" && $NOTIFY == "all" ]]; then printlog "notifying" - displaynotification "$message" "Error installing/updating $name" + if [[ $updateDetected == "YES" ]]; then + displaynotification "$message" "Error updating $name" + else + displaynotification "$message" "Error installing $name" + fi fi cleanupAndExit 2 fi @@ -199,7 +207,11 @@ fi printlog "Installing $name" if [[ $currentUser != "loginwindow" && $NOTIFY == "all" ]]; then printlog "notifying" - displaynotification "Installing $name" "Installation in progress …" + if [[ $updateDetected == "YES" ]]; then + displaynotification "Updating $name" "Installation in progress …" + else + displaynotification "Installing $name" "Installation in progress …" + fi fi case $type in From bf4e7d89ec459b528c3ea0fdc75fc2526ad313f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 16:01:06 +0100 Subject: [PATCH 16/48] mountname reintroduced MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now we can call any script on the root of the path where `appName` is found. Same result: ``` 2021-11-10 15:58:02 adobecreativeclouddesktop setting variable from argument DEBUG=0 2021-11-10 15:58:02 adobecreativeclouddesktop setting variable from argument INSTALL=force 2021-11-10 15:58:02 adobecreativeclouddesktop ################## Start Installomator v. 0.8.0 2021-11-10 15:58:02 adobecreativeclouddesktop ################## adobecreativeclouddesktop 2021-11-10 15:58:03 adobecreativeclouddesktop BLOCKING_PROCESS_ACTION=tell_user 2021-11-10 15:58:03 adobecreativeclouddesktop NOTIFY=success 2021-11-10 15:58:03 adobecreativeclouddesktop LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-10 15:58:03 adobecreativeclouddesktop no blocking processes defined, using Creative Cloud as default 2021-11-10 15:58:03 adobecreativeclouddesktop Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.WNV7B1pH 2021-11-10 15:58:03 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 15:58:03 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 15:58:03 adobecreativeclouddesktop appversion: 2021-11-10 15:58:03 adobecreativeclouddesktop Latest version of Creative Cloud is 5.6.0.788 2021-11-10 15:58:03 adobecreativeclouddesktop Downloading https://ccmdl.adobe.com/AdobeProducts/KCCC/CCD/5_6_0/macarm64/ACCCx5_6_0_788.dmg to Creative Cloud.dmg 2021-11-10 15:58:17 adobecreativeclouddesktop no more blocking processes, continue with update 2021-11-10 15:58:17 adobecreativeclouddesktop Installing Creative Cloud 2021-11-10 15:58:17 adobecreativeclouddesktop Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.WNV7B1pH/Creative Cloud.dmg 2021-11-10 15:58:18 adobecreativeclouddesktop Mounted: /Volumes/Creative Cloud 2021-11-10 15:58:18 adobecreativeclouddesktop Verifying: /Volumes/Creative Cloud/Install.app 2021-11-10 15:58:18 adobecreativeclouddesktop Team ID matching: JQ525L2MZD (expected: JQ525L2MZD ) 2021-11-10 15:58:18 adobecreativeclouddesktop Downloaded version of Creative Cloud is 2.6.0.46 (replacing version ). 2021-11-10 15:58:18 adobecreativeclouddesktop CLIInstaller exists, running installer command /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 15:58:23 adobecreativeclouddesktop Succesfully ran /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 15:58:23 adobecreativeclouddesktop Debugging enabled, update tool output was: objc[20055]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565018) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10f2f0790). One of the two will be used. Which one is undefined. objc[20055]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565068) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10f2f07e0). One of the two will be used. Which one is undefined. objc[20055]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565018) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x110302790). One of the two will be used. Which one is undefined. objc[20055]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565068) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x1103027e0). One of the two will be used. Which one is undefined. Starting installer... Installation successful. 2021-11-10 15:58:23 adobecreativeclouddesktop Finishing… 2021-11-10 15:58:33 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 15:58:33 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 15:58:33 adobecreativeclouddesktop Installed Creative Cloud 2021-11-10 15:58:33 adobecreativeclouddesktop notifying 2021-11-10 15:58:33 adobecreativeclouddesktop Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.WNV7B1pH 2021-11-10 15:58:33 adobecreativeclouddesktop Unmounting /Volumes/Creative Cloud "disk5" ejected. 2021-11-10 15:58:33 adobecreativeclouddesktop App not closed, so no reopen. 2021-11-10 15:58:33 adobecreativeclouddesktop ################## End Installomator, exit code 0 ``` --- fragments/functions.sh | 10 +++++----- fragments/labels/adobecreativeclouddesktop.sh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fragments/functions.sh b/fragments/functions.sh index 0a47499..ac6ab82 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -393,17 +393,17 @@ installAppWithPath() { # $1: path to app to install in $targetDir fi elif [[ ! -z $CLIInstaller ]]; then - #mountname=$(dirname $appPath) - printlog "CLIInstaller exists, running installer command $appPath/$CLIInstaller $CLIArguments" #INFO + mountname=$(dirname $appPath) + printlog "CLIInstaller exists, running installer command $mountname/$CLIInstaller $CLIArguments" #INFO - CLIoutput=$("$appPath/$CLIInstaller" "${CLIArguments[@]}" 2>&1) + CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) CLIstatus=$(echo $?) logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" if [ $CLIstatus -ne 0 ] ; then - cleanupAndExit 3 "Error installing $appPath/$CLIInstaller $CLIArguments error:\n$logoutput" #ERROR + cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error:\n$logoutput" #ERROR else - printlog "Succesfully ran $appPath/$CLIInstaller $CLIArguments" + printlog "Succesfully ran $mountname/$CLIInstaller $CLIArguments" fi printlog "Debugging enabled, update tool output was:\n$logoutput" #DEBUG fi diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 8388161..30b11e2 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -9,7 +9,7 @@ adobecreativeclouddesktop) 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) - CLIInstaller="Contents/MacOS/Install" # "Install.app/Contents/MacOS/Install" + CLIInstaller="Install.app/Contents/MacOS/Install" CLIArguments=(--mode=silent) expectedTeamID="JQ525L2MZD" Company="Adobe" From 15373a35f92cbd6afb2c16c05738325687912b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 16:22:28 +0100 Subject: [PATCH 17/48] Explanation --- README.md | 3 ++- fragments/header.sh | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b90d9fd..6ae7225 100644 --- a/README.md +++ b/README.md @@ -380,8 +380,9 @@ Depending on the application or pkg there are a few more variables you can or ne - `CLIInstaller`: - `CLIArguments`: If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. - We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to this binary, and it will be called like this: + We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to the folder of this binary, and it will be called like this: `$CLIInstaller $CLIArguments` + So for most installations `CLIInstaller` should contain the `appName` for the CLI call (if it’s the same). We can support a whole range of other software titles by implementing this. See label adobecreativeclouddesktop. diff --git a/fragments/header.sh b/fragments/header.sh index 1938b4d..e1dbace 100644 --- a/fragments/header.sh +++ b/fragments/header.sh @@ -208,9 +208,11 @@ REOPEN="yes" # If the downloaded dmg is actually an installer that we can call using CLI, # we can use these two variables for what to call. # We need to define `name` for the installed app (to be version checked), as well -# as `appName` for the installer binary. So Installomator will add the path to this -# binary, and it will be called like this: +# as `appName` for the installer binary. So Installomator will add the path to the +# folder of this binary, and it will be called like this: # $CLIInstaller $CLIArguments +# So for most installations `CLIInstaller` should contain the `appName` for the CLI +# call (if it’s the same). # We can support a whole range of other software titles by implementing this. # See label adobecreativeclouddesktop # From c20ba0274b8a5a23b813ab6017c940713c7bc6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 11 Nov 2021 08:44:55 +0100 Subject: [PATCH 18/48] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f2685f..3cd6d80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v0.8 + +- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. See the label __adobecreativeclouddesktop__ to see it's use. + ## 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. From 9f34df0b4e5191a13853728523a3406f6d38b989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 11 Nov 2021 08:46:13 +0100 Subject: [PATCH 19/48] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f2685f..a7d5231 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v0.8 + +- Installomator now detects when an app is already installed, and will display notifications correctly the user based on if the app was updated or installed for the first time. + ## 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. From 09b84945ed9eea1ef8be52ed17a9f81e8391fcc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 11 Nov 2021 08:50:08 +0100 Subject: [PATCH 20/48] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f2685f..5820b9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v0.8 + +- Microsoft labels with `updateTool` variable, is updated to run `msupdate --list` before running the updateTool directly. Problems have been reported that the update would fail if the `--list` parameter for the command was not run first. + ## 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. From 855101a2cde9a1e43e4bf86706f99f0fe413be01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 11 Nov 2021 10:56:41 +0100 Subject: [PATCH 21/48] mowgliiitsycal --- Labels.txt | 1 + fragments/labels/mowgliiitsycal.sh | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 fragments/labels/mowgliiitsycal.sh diff --git a/Labels.txt b/Labels.txt index 1986992..ce9c544 100644 --- a/Labels.txt +++ b/Labels.txt @@ -197,6 +197,7 @@ microsoftword microsoftyammer miro montereyblocker +mowgliiitsycal musescore muzzle netnewswire diff --git a/fragments/labels/mowgliiitsycal.sh b/fragments/labels/mowgliiitsycal.sh new file mode 100644 index 0000000..b4c0ce2 --- /dev/null +++ b/fragments/labels/mowgliiitsycal.sh @@ -0,0 +1,8 @@ +mowgliiitsycal) + name="Itsycal" + type="zip" + downloadURL=$(curl -fs https://s3.amazonaws.com/itsycal/itsycal.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2) + appNewVersion=$(curl -fs https://s3.amazonaws.com/itsycal/itsycal.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2) + expectedTeamID="HFT3T55WND" + ;; + From 4aa7cd7793442e00a0da79bdd0b4e4dbb10d572f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 12 Nov 2021 09:51:52 +0100 Subject: [PATCH 22/48] more labels Adding a few labels to see it in a bigger picture --- fragments/functions.sh | 5 ++++- fragments/labels/adobecreativeclouddesktop.sh | 4 ++-- fragments/labels/parallelsdesktop.sh | 13 +++++++++++++ fragments/labels/parallelsdesktop16.sh | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 fragments/labels/parallelsdesktop.sh create mode 100644 fragments/labels/parallelsdesktop16.sh diff --git a/fragments/functions.sh b/fragments/functions.sh index ac6ab82..48246fa 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -428,8 +428,11 @@ mountDMG() { installFromDMG() { mountDMG - + if [[ -z $CLIInstaller ]]; then installAppWithPath "$dmgmount/$appName" + else + installAppWithPath "$dmgmount/$CLIInstaller" + fi } installFromPKG() { diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 30b11e2..ee94acc 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -1,6 +1,6 @@ adobecreativeclouddesktop) - name="Creative Cloud" - appName="Install.app" + name="Adobe Creative Cloud" + #appName="Install.app" type="dmg" 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) diff --git a/fragments/labels/parallelsdesktop.sh b/fragments/labels/parallelsdesktop.sh new file mode 100644 index 0000000..30aec8c --- /dev/null +++ b/fragments/labels/parallelsdesktop.sh @@ -0,0 +1,13 @@ +parallelsdesktop) + name="Parallels Desktop" + #appName="Install.app" + type="dmg" + downloadURL=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg") + appNewVersion=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg" | cut -d "/" -f6 | cut -d "-" -f1) + expectedTeamID="4C6364ACXT" + CLIInstaller="Install.app/Contents/MacOS/Install" + CLIArguments=(install -t "/Applications/Parallels Desktop.app") + #Company="Parallels" + #PatchSkip="YES" + ;; + diff --git a/fragments/labels/parallelsdesktop16.sh b/fragments/labels/parallelsdesktop16.sh new file mode 100644 index 0000000..eee76b0 --- /dev/null +++ b/fragments/labels/parallelsdesktop16.sh @@ -0,0 +1,17 @@ +parallelsdesktop16) + name="Parallels Desktop" + #appName="Install.app" + type="dmg" + if [[ $(arch) == i386 ]]; then + downloadURL="https://www.parallels.com/directdownload/pd16/intel/?experience=enter_key" + elif [[ $(arch) == arm64 ]]; then + downloadURL="https://www.parallels.com/directdownload/pd16/m1/?experience=enter_key" + fi + appNewVersion=$( curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-[0-9]*\..*/\1/g' ) + expectedTeamID="4C6364ACXT" + CLIInstaller="Install.app/Contents/MacOS/Install" + CLIArguments=(install -t "/Applications/Parallels Desktop.app") + #Company="Parallels" + #PatchSkip="YES" + ;; + From 168d19cd56d773fa62f265486d13f5717881b2b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 12 Nov 2021 11:14:10 +0100 Subject: [PATCH 23/48] Pangea Software games MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Example installation ``` % sudo /Users/st/Documents/GitHub/Installomator/utils/assemble.sh -r ottomatic DEBUG=0 2021-11-12 10:28:35 ottomatic setting variable from argument DEBUG=0 2021-11-12 10:28:35 ottomatic ################## Start Installomator v. 0.8.0 2021-11-12 10:28:35 ottomatic ################## ottomatic 2021-11-12 10:28:36 ottomatic BLOCKING_PROCESS_ACTION=tell_user 2021-11-12 10:28:36 ottomatic NOTIFY=success 2021-11-12 10:28:36 ottomatic LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-12 10:28:36 ottomatic no blocking processes defined, using Otto Matic as default 2021-11-12 10:28:36 ottomatic Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.xzx3iWjQ 2021-11-12 10:28:36 ottomatic App(s) found: 2021-11-12 10:28:36 ottomatic could not find Otto Matic.app 2021-11-12 10:28:36 ottomatic appversion: 2021-11-12 10:28:36 ottomatic Latest version of Otto Matic is 4.0.0 2021-11-12 10:28:36 ottomatic Downloading https://github.com/jorio/OttoMatic/releases/download/4.0.0/OttoMatic-4.0.0-mac.dmg to Otto Matic.dmg 2021-11-12 10:29:52 ottomatic no more blocking processes, continue with update 2021-11-12 10:29:52 ottomatic Installing Otto Matic 2021-11-12 10:29:52 ottomatic Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.xzx3iWjQ/Otto Matic.dmg 2021-11-12 10:29:55 ottomatic Mounted: /Volumes/Otto Matic 4.0.0 2021-11-12 10:29:55 ottomatic Verifying: /Volumes/Otto Matic 4.0.0/Otto Matic.app 2021-11-12 10:29:57 ottomatic Team ID matching: RVNL7XC27G (expected: RVNL7XC27G ) 2021-11-12 10:29:57 ottomatic Downloaded version of Otto Matic is 4.0.0 (replacing version ). 2021-11-12 10:29:57 ottomatic Copy /Volumes/Otto Matic 4.0.0/Otto Matic.app to /Applications 2021-11-12 10:29:57 ottomatic Changing owner to st 2021-11-12 10:29:57 ottomatic Finishing… 2021-11-12 10:30:07 ottomatic App(s) found: /Applications/Otto Matic.app 2021-11-12 10:30:07 ottomatic found app at /Applications/Otto Matic.app, version 4.0.0 2021-11-12 10:30:07 ottomatic Installed Otto Matic, version 4.0.0 2021-11-12 10:30:07 ottomatic notifying 2021-11-12 10:30:07 ottomatic Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.xzx3iWjQ 2021-11-12 10:30:07 ottomatic Unmounting /Volumes/Otto Matic 4.0.0 "disk6" ejected. 2021-11-12 10:30:07 ottomatic App not closed, so no reopen. 2021-11-12 10:30:08 ottomatic ################## End Installomator, exit code 0 % sudo /Users/st/Documents/GitHub/Installomator/utils/assemble.sh -r ottomatic DEBUG=0 Password: 2021-11-12 10:58:24 ottomatic setting variable from argument DEBUG=0 2021-11-12 10:58:24 ottomatic ################## Start Installomator v. 0.8.0 2021-11-12 10:58:24 ottomatic ################## ottomatic 2021-11-12 10:58:25 ottomatic BLOCKING_PROCESS_ACTION=tell_user 2021-11-12 10:58:25 ottomatic NOTIFY=success 2021-11-12 10:58:25 ottomatic LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-12 10:58:25 ottomatic no blocking processes defined, using Otto Matic as default 2021-11-12 10:58:25 ottomatic Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.nNqO5vSr 2021-11-12 10:58:25 ottomatic App(s) found: /Applications/Otto Matic.app 2021-11-12 10:58:25 ottomatic found app at /Applications/Otto Matic.app, version 4.0.0 2021-11-12 10:58:25 ottomatic appversion: 4.0.0 2021-11-12 10:58:25 ottomatic Latest version of Otto Matic is 4.0.0 2021-11-12 10:58:25 ottomatic There is no newer version available. 2021-11-12 10:58:25 ottomatic Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.nNqO5vSr 2021-11-12 10:58:25 ottomatic App not closed, so no reopen. 2021-11-12 10:58:25 ottomatic ################## End Installomator, exit code 0 ``` --- fragments/labels/bugdom.sh | 7 +++++++ fragments/labels/mightymike.sh | 7 +++++++ fragments/labels/nanosaur.sh | 7 +++++++ fragments/labels/ottomatic.sh | 8 ++++++++ 4 files changed, 29 insertions(+) create mode 100644 fragments/labels/bugdom.sh create mode 100644 fragments/labels/mightymike.sh create mode 100644 fragments/labels/nanosaur.sh create mode 100644 fragments/labels/ottomatic.sh diff --git a/fragments/labels/bugdom.sh b/fragments/labels/bugdom.sh new file mode 100644 index 0000000..106b3e5 --- /dev/null +++ b/fragments/labels/bugdom.sh @@ -0,0 +1,7 @@ +bugdom) + name="Bugdom" + type="dmg" + downloadURL=$(downloadURLFromGit jorio Bugdom) + appNewVersion=$(versionFromGit jorio Bugdom) + expectedTeamID="RVNL7XC27G" + ;; diff --git a/fragments/labels/mightymike.sh b/fragments/labels/mightymike.sh new file mode 100644 index 0000000..b241a6a --- /dev/null +++ b/fragments/labels/mightymike.sh @@ -0,0 +1,7 @@ +mightymike) + name="Nanosaur" + type="dmg" + downloadURL=$(downloadURLFromGit jorio MightyMike) + appNewVersion=$(versionFromGit jorio MightyMike) + expectedTeamID="RVNL7XC27G" + ;; diff --git a/fragments/labels/nanosaur.sh b/fragments/labels/nanosaur.sh new file mode 100644 index 0000000..980f53e --- /dev/null +++ b/fragments/labels/nanosaur.sh @@ -0,0 +1,7 @@ +nanosaur) + name="Nanosaur" + type="dmg" + downloadURL=$(downloadURLFromGit jorio Nanosaur) + appNewVersion=$(versionFromGit jorio Nanosaur) + expectedTeamID="RVNL7XC27G" + ;; diff --git a/fragments/labels/ottomatic.sh b/fragments/labels/ottomatic.sh new file mode 100644 index 0000000..f2e1c5a --- /dev/null +++ b/fragments/labels/ottomatic.sh @@ -0,0 +1,8 @@ +ottomatic) + name="Otto Matic" + type="dmg" + downloadURL=$(downloadURLFromGit jorio OttoMatic) + appNewVersion=$(versionFromGit jorio OttoMatic) + expectedTeamID="RVNL7XC27G" + ;; + From 28d5d1de0c124e5d250d2067eb7680f15942fc65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 12 Nov 2021 11:29:08 +0100 Subject: [PATCH 24/48] Marathon alephone --- fragments/labels/alephone.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/alephone.sh diff --git a/fragments/labels/alephone.sh b/fragments/labels/alephone.sh new file mode 100644 index 0000000..5ad40a9 --- /dev/null +++ b/fragments/labels/alephone.sh @@ -0,0 +1,7 @@ +alephone) + name="Aleph One" + type="dmg" + downloadURL=$(downloadURLFromGit Aleph-One-Marathon alephone) + appNewVersion=$(versionFromGit Aleph-One-Marathon alephone) + expectedTeamID="E8K89CXZE7" + ;; From 596b9c6e286c7a4f4acc716bb3550bd1e378dc2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 15 Nov 2021 09:23:24 +0100 Subject: [PATCH 25/48] Missing TeamID --- fragments/{labels => broken}/mightymike.sh | 0 fragments/{labels => broken}/nanosaur.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename fragments/{labels => broken}/mightymike.sh (100%) rename fragments/{labels => broken}/nanosaur.sh (100%) diff --git a/fragments/labels/mightymike.sh b/fragments/broken/mightymike.sh similarity index 100% rename from fragments/labels/mightymike.sh rename to fragments/broken/mightymike.sh diff --git a/fragments/labels/nanosaur.sh b/fragments/broken/nanosaur.sh similarity index 100% rename from fragments/labels/nanosaur.sh rename to fragments/broken/nanosaur.sh From 7f96d78946910014cb539ad80cf680edc32e3116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 15 Nov 2021 09:52:57 +0100 Subject: [PATCH 26/48] fastscripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` % sudo /Documents/GitHub/Installomator/utils/assemble.sh -r fastscripts DEBUG=0 2021-11-15 09:51:16 fastscripts setting variable from argument DEBUG=0 2021-11-15 09:51:16 fastscripts ################## Start Installomator v. 0.8.0 2021-11-15 09:51:16 fastscripts ################## fastscripts 2021-11-15 09:51:17 fastscripts BLOCKING_PROCESS_ACTION=tell_user 2021-11-15 09:51:17 fastscripts NOTIFY=success 2021-11-15 09:51:17 fastscripts LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-15 09:51:17 fastscripts no blocking processes defined, using FastScripts as default 2021-11-15 09:51:17 fastscripts Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.FyV3t3sp 2021-11-15 09:51:17 fastscripts App(s) found: /Users/st/Downloads/2021-11-15-09-40-10/FastScripts.app 2021-11-15 09:51:17 fastscripts could not determine location of FastScripts.app 2021-11-15 09:51:17 fastscripts appversion: 2021-11-15 09:51:17 fastscripts Latest version of FastScripts is 3.0 2021-11-15 09:51:17 fastscripts Downloading https://redsweater.com/fastscripts/FastScripts3.0.zip to FastScripts.zip 2021-11-15 09:51:20 fastscripts no more blocking processes, continue with update 2021-11-15 09:51:20 fastscripts Installing FastScripts 2021-11-15 09:51:20 fastscripts Unzipping FastScripts.zip 2021-11-15 09:51:20 fastscripts Verifying: /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.FyV3t3sp/FastScripts.app 2021-11-15 09:51:21 fastscripts Team ID matching: 493CVA9A35 (expected: 493CVA9A35 ) 2021-11-15 09:51:21 fastscripts Downloaded version of FastScripts is 3.0 (replacing version ). 2021-11-15 09:51:21 fastscripts Copy /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.FyV3t3sp/FastScripts.app to /Applications 2021-11-15 09:51:21 fastscripts Changing owner to st 2021-11-15 09:51:21 fastscripts Finishing… 2021-11-15 09:51:31 fastscripts App(s) found: /Applications/FastScripts.app 2021-11-15 09:51:31 fastscripts found app at /Applications/FastScripts.app, version 3.0 2021-11-15 09:51:31 fastscripts Installed FastScripts, version 3.0 2021-11-15 09:51:31 fastscripts notifying 2021-11-15 09:51:31 fastscripts Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.FyV3t3sp 2021-11-15 09:51:31 fastscripts App not closed, so no reopen. 2021-11-15 09:51:31 fastscripts ################## End Installomator, exit code 0 % sudo Documents/GitHub/Installomator/utils/assemble.sh -r fastscripts DEBUG=0 2021-11-15 09:51:47 fastscripts setting variable from argument DEBUG=0 2021-11-15 09:51:47 fastscripts ################## Start Installomator v. 0.8.0 2021-11-15 09:51:47 fastscripts ################## fastscripts 2021-11-15 09:51:48 fastscripts BLOCKING_PROCESS_ACTION=tell_user 2021-11-15 09:51:48 fastscripts NOTIFY=success 2021-11-15 09:51:48 fastscripts LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-15 09:51:48 fastscripts no blocking processes defined, using FastScripts as default 2021-11-15 09:51:48 fastscripts Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.O9CBwrvL 2021-11-15 09:51:48 fastscripts App(s) found: /Applications/FastScripts.app 2021-11-15 09:51:48 fastscripts found app at /Applications/FastScripts.app, version 3.0 2021-11-15 09:51:48 fastscripts appversion: 3.0 2021-11-15 09:51:48 fastscripts Latest version of FastScripts is 3.0 2021-11-15 09:51:48 fastscripts There is no newer version available. 2021-11-15 09:51:48 fastscripts Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.O9CBwrvL 2021-11-15 09:51:48 fastscripts App not closed, so no reopen. 2021-11-15 09:51:48 fastscripts ################## End Installomator, exit code 0 ``` --- Labels.txt | 1 + fragments/labels/fastscripts.sh | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 fragments/labels/fastscripts.sh diff --git a/Labels.txt b/Labels.txt index ce9c544..46044e0 100644 --- a/Labels.txt +++ b/Labels.txt @@ -90,6 +90,7 @@ evernote exelbanstats exifrenamer fantastical +fastscripts favro ferdi figma diff --git a/fragments/labels/fastscripts.sh b/fragments/labels/fastscripts.sh new file mode 100644 index 0000000..2aed4c9 --- /dev/null +++ b/fragments/labels/fastscripts.sh @@ -0,0 +1,7 @@ +fastscripts) + name="FastScripts" + type="zip" + downloadURL=$( curl -fs "https://redsweater.com/fastscripts/appcast3.php" | xpath '//rss/channel/item/enclosure/@url' 2>/dev/null | cut -d '"' -f2 ) + appNewVersion=$( curl -fs "https://redsweater.com/fastscripts/appcast3.php" | xpath '//rss/channel/item/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f2 ) + expectedTeamID="493CVA9A35" + ;; From 891dab08d4708288e8dfe557cb8aaa4046e9142c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 15 Nov 2021 14:25:57 +0100 Subject: [PATCH 27/48] `installerTool` implemented --- CHANGELOG.md | 2 +- README.md | 10 ++++++--- fragments/functions.sh | 6 +---- fragments/header.sh | 22 ++++++++++++------- fragments/labels/adobecreativeclouddesktop.sh | 1 + fragments/labels/forticlientvpn.sh | 11 ++++++++++ fragments/main.sh | 6 +++++ 7 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 fragments/labels/forticlientvpn.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cd6d80..26959a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## v0.8 -- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. See the label __adobecreativeclouddesktop__ to see it's use. +- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. If the installer app is named differently thatn the installed app, then the variable `installerTool` can be use to name the app that should be located in the DMG or zip. See the label __adobecreativeclouddesktop__ to see it’s use. ## v0.7 diff --git a/README.md b/README.md index 6ae7225..b387170 100644 --- a/README.md +++ b/README.md @@ -379,13 +379,17 @@ Depending on the application or pkg there are a few more variables you can or ne - `CLIInstaller`: - `CLIArguments`: - If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. - We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to the folder of this binary, and it will be called like this: + If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. + We need to define `name` for the installed app (to be version checked), as well as `installerTool` for the installer app (if named differently that `name`. Installomator will add the path to the folder/disk image with the binary, and it will be called like this: `$CLIInstaller $CLIArguments` - So for most installations `CLIInstaller` should contain the `appName` for the CLI call (if it’s the same). + For most installations `CLIInstaller` should contain the `installerTool` for the CLI call (if it’s the same). We can support a whole range of other software titles by implementing this. See label adobecreativeclouddesktop. +- `installerTool`: + Introduced as part of `CLIInstaller`. If the installer in the DMG or ZIP is named differently than the installed app, then this variable can be used to name the installer that should be located after mounting/expanding the downloaded archive. + See label adobecreativeclouddesktop + ### Configuration from Arguments You can provide a configuration variable, such as `DEBUG` or `NOTIFY` as an argument in the form `VAR=value`. For example: diff --git a/fragments/functions.sh b/fragments/functions.sh index 48246fa..a810830 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -342,7 +342,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir # versioncheck # credit: Søren Theilgaard (@theilgaard) appNewVersion=$(defaults read $appPath/Contents/Info.plist $versionKey) - if [[ $appversion == $appNewVersion ]]; then + if [[ -n $appNewVersion && $appversion == $appNewVersion ]]; then printlog "Downloaded version of $name is $appNewVersion, same as installed." if [[ $INSTALL != "force" ]]; then message="$name, version $appNewVersion, is the latest version." @@ -428,11 +428,7 @@ mountDMG() { installFromDMG() { mountDMG - if [[ -z $CLIInstaller ]]; then installAppWithPath "$dmgmount/$appName" - else - installAppWithPath "$dmgmount/$CLIInstaller" - fi } installFromPKG() { diff --git a/fragments/header.sh b/fragments/header.sh index e1dbace..357077d 100644 --- a/fragments/header.sh +++ b/fragments/header.sh @@ -205,14 +205,20 @@ REOPEN="yes" # # - CLIInstaller: # - CLIArguments: -# If the downloaded dmg is actually an installer that we can call using CLI, -# we can use these two variables for what to call. -# We need to define `name` for the installed app (to be version checked), as well -# as `appName` for the installer binary. So Installomator will add the path to the -# folder of this binary, and it will be called like this: -# $CLIInstaller $CLIArguments -# So for most installations `CLIInstaller` should contain the `appName` for the CLI -# call (if it’s the same). +# If the downloaded dmg is actually an installer that we can call using CLI, we can +# use these two variables for what to call. +# We need to define `name` for the installed app (to be version checked), as well as +# `installerTool` for the installer app (if named differently that `name`. Installomator +# will add the path to the folder/disk image with the binary, and it will be called like this: + `$CLIInstaller $CLIArguments` +# For most installations `CLIInstaller` should contain the `installerTool` for the CLI call +# (if it’s the same). # We can support a whole range of other software titles by implementing this. # See label adobecreativeclouddesktop # +# - installerTool: +# Introduced as part of `CLIInstaller`. If the installer in the DMG or ZIP is named +# differently than the installed app, then this variable can be used to name the +# installer that should be located after mounting/expanding the downloaded archive. +# See label adobecreativeclouddesktop +# diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index ee94acc..7445443 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -9,6 +9,7 @@ adobecreativeclouddesktop) 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) + installerTool="Install.app" CLIInstaller="Install.app/Contents/MacOS/Install" CLIArguments=(--mode=silent) expectedTeamID="JQ525L2MZD" diff --git a/fragments/labels/forticlientvpn.sh b/fragments/labels/forticlientvpn.sh new file mode 100644 index 0000000..949a97d --- /dev/null +++ b/fragments/labels/forticlientvpn.sh @@ -0,0 +1,11 @@ +forticlientvpn) + name="FortiClientUpdate" + type="dmg" + # This version of the installer only downloads another installer + downloadURL="https://links.fortinet.com/forticlient/mac/vpnagent" + appNewVersion="" + installerTool="FortiClientUpdate.app" + CLIInstaller="FortiClientUpdate.app/Contents/MacOS/FortiClientUpdate" + CLIArguments=( ) + expectedTeamID="AH4XFXJ7DK" + ;; diff --git a/fragments/main.sh b/fragments/main.sh index dfba2c9..e69f099 100644 --- a/fragments/main.sh +++ b/fragments/main.sh @@ -202,6 +202,12 @@ if [[ $currentUser != "loginwindow" && $NOTIFY == "all" ]]; then displaynotification "Installing $name" "Installation in progress …" fi +if [ -n "$installerTool" ]; then + # installerTool defined, and we use that for installation + printlog "installerTool used: $installerTool" + appName="$installerTool" +fi + case $type in dmg) installFromDMG From 53c629aa1532ca99ed79ee16e1b6f55c5641f0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Tue, 16 Nov 2021 09:32:14 +0100 Subject: [PATCH 28/48] Removing non-working labels --- fragments/labels/forticlientvpn.sh | 11 ----------- fragments/labels/parallelsdesktop.sh | 13 ------------- fragments/labels/parallelsdesktop16.sh | 17 ----------------- 3 files changed, 41 deletions(-) delete mode 100644 fragments/labels/forticlientvpn.sh delete mode 100644 fragments/labels/parallelsdesktop.sh delete mode 100644 fragments/labels/parallelsdesktop16.sh diff --git a/fragments/labels/forticlientvpn.sh b/fragments/labels/forticlientvpn.sh deleted file mode 100644 index 949a97d..0000000 --- a/fragments/labels/forticlientvpn.sh +++ /dev/null @@ -1,11 +0,0 @@ -forticlientvpn) - name="FortiClientUpdate" - type="dmg" - # This version of the installer only downloads another installer - downloadURL="https://links.fortinet.com/forticlient/mac/vpnagent" - appNewVersion="" - installerTool="FortiClientUpdate.app" - CLIInstaller="FortiClientUpdate.app/Contents/MacOS/FortiClientUpdate" - CLIArguments=( ) - expectedTeamID="AH4XFXJ7DK" - ;; diff --git a/fragments/labels/parallelsdesktop.sh b/fragments/labels/parallelsdesktop.sh deleted file mode 100644 index 30aec8c..0000000 --- a/fragments/labels/parallelsdesktop.sh +++ /dev/null @@ -1,13 +0,0 @@ -parallelsdesktop) - name="Parallels Desktop" - #appName="Install.app" - type="dmg" - downloadURL=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg") - appNewVersion=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg" | cut -d "/" -f6 | cut -d "-" -f1) - expectedTeamID="4C6364ACXT" - CLIInstaller="Install.app/Contents/MacOS/Install" - CLIArguments=(install -t "/Applications/Parallels Desktop.app") - #Company="Parallels" - #PatchSkip="YES" - ;; - diff --git a/fragments/labels/parallelsdesktop16.sh b/fragments/labels/parallelsdesktop16.sh deleted file mode 100644 index eee76b0..0000000 --- a/fragments/labels/parallelsdesktop16.sh +++ /dev/null @@ -1,17 +0,0 @@ -parallelsdesktop16) - name="Parallels Desktop" - #appName="Install.app" - type="dmg" - if [[ $(arch) == i386 ]]; then - downloadURL="https://www.parallels.com/directdownload/pd16/intel/?experience=enter_key" - elif [[ $(arch) == arm64 ]]; then - downloadURL="https://www.parallels.com/directdownload/pd16/m1/?experience=enter_key" - fi - appNewVersion=$( curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-[0-9]*\..*/\1/g' ) - expectedTeamID="4C6364ACXT" - CLIInstaller="Install.app/Contents/MacOS/Install" - CLIArguments=(install -t "/Applications/Parallels Desktop.app") - #Company="Parallels" - #PatchSkip="YES" - ;; - From c954dab309de54b7dc0a4ac62859f5548c2b7bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Tue, 16 Nov 2021 09:33:28 +0100 Subject: [PATCH 29/48] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26959a8..4ede88e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## v0.8 -- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. If the installer app is named differently thatn the installed app, then the variable `installerTool` can be use to name the app that should be located in the DMG or zip. See the label __adobecreativeclouddesktop__ to see it’s use. +- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. If the installer app is named differently than the installed app, then the variable `installerTool` should be use to name the app that should be located in the DMG or zip. See the label __adobecreativeclouddesktop__ to see it’s use. ## v0.7 From 289b72c5f1458061211f93d1b03e3bffc5c3cf16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Tue, 16 Nov 2021 09:52:36 +0100 Subject: [PATCH 30/48] marathon trilogy --- fragments/labels/marathon.sh | 8 ++++++++ fragments/labels/marathon2.sh | 8 ++++++++ fragments/labels/marathoninfinity.sh | 8 ++++++++ 3 files changed, 24 insertions(+) create mode 100644 fragments/labels/marathon.sh create mode 100644 fragments/labels/marathon2.sh create mode 100644 fragments/labels/marathoninfinity.sh diff --git a/fragments/labels/marathon.sh b/fragments/labels/marathon.sh new file mode 100644 index 0000000..75f5799 --- /dev/null +++ b/fragments/labels/marathon.sh @@ -0,0 +1,8 @@ +marathon) + name="Marathon" + type="dmg" + archiveName="Marathon-[0-9.]*-Mac.dmg" + 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 new file mode 100644 index 0000000..02440fa --- /dev/null +++ b/fragments/labels/marathon2.sh @@ -0,0 +1,8 @@ +marathon2) + name="Marathon 2" + type="dmg" + archiveName="Marathon2-[0-9.]*-Mac.dmg" + 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 new file mode 100644 index 0000000..a9b5165 --- /dev/null +++ b/fragments/labels/marathoninfinity.sh @@ -0,0 +1,8 @@ +marathoninfinity) + name="Marathon Infinity" + type="dmg" + archiveName="MarathonInfinity-[0-9.]*-Mac.dmg" + downloadURL="$(downloadURLFromGit Aleph-One-Marathon alephone)" + appNewVersion="$(versionFromGit Aleph-One-Marathon alephone)" + expectedTeamID="E8K89CXZE7" + ;; From 38bf480a2e2504d7cc77bbca011b3b9947e26a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 17 Nov 2021 08:23:14 +0100 Subject: [PATCH 31/48] Update audacity.sh --- fragments/labels/audacity.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fragments/labels/audacity.sh b/fragments/labels/audacity.sh index 89c17fe..a5868d3 100644 --- a/fragments/labels/audacity.sh +++ b/fragments/labels/audacity.sh @@ -1,8 +1,7 @@ audacity) - # credit: Gabe Marchan (gabemarchan.com - @darklink87) name="Audacity" type="dmg" downloadURL=$(downloadURLFromGit audacity audacity) appNewVersion=$(versionFromGit audacity audacity) - expectedTeamID="T3N4JQ7YY6" + expectedTeamID="AWEYX923UX" ;; From c62707cd7d7406cfe0f4d47606d0a68c877ce042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20B=C3=BChler?= <48823479+adibue@users.noreply.github.com> Date: Wed, 17 Nov 2021 11:54:56 +0100 Subject: [PATCH 32/48] Added label for 'nudge' Added label for `nudge`. Log from test run: ``` $ sudo zsh Installomator.sh nudge DEBUG=0 2021-11-17 11:52:34 nudge setting variable from argument DEBUG=0 2021-11-17 11:52:34 nudge ################## Start Installomator v. 0.8.0 2021-11-17 11:52:34 nudge ################## nudge 2021-11-17 11:52:35 nudge BLOCKING_PROCESS_ACTION=tell_user 2021-11-17 11:52:35 nudge NOTIFY=success 2021-11-17 11:52:35 nudge LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-17 11:52:35 nudge no blocking processes defined, using Nudge as default 2021-11-17 11:52:35 nudge Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.9Fo2W6NU 2021-11-17 11:52:35 nudge App(s) found: /Applications/Utilities/Nudge.app 2021-11-17 11:52:35 nudge found app at /Applications/Utilities/Nudge.app, version 1.1.2.10212021172015 2021-11-17 11:52:35 nudge appversion: 1.1.2.10212021172015 2021-11-17 11:52:35 nudge Latest version of Nudge is 1.1.2.10212021172015 2021-11-17 11:52:35 nudge There is no newer version available. 2021-11-17 11:52:35 nudge Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.9Fo2W6NU 2021-11-17 11:52:35 nudge App not closed, so no reopen. 2021-11-17 11:52:35 nudge ################## End Installomator, exit code 0 ``` --- fragments/labels/nudge.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 fragments/labels/nudge.sh diff --git a/fragments/labels/nudge.sh b/fragments/labels/nudge.sh new file mode 100644 index 0000000..804872d --- /dev/null +++ b/fragments/labels/nudge.sh @@ -0,0 +1,8 @@ +nudge) + name="Nudge" + type="pkg" + downloadURL=$(downloadURLFromGit macadmins Nudge ) + appNewVersion=$(versionFromGit macadmins Nudge ) + expectedTeamID="9GQZ7KUFR6" + archiveName="Nudge-[0-9.]*.pkg" + ;; From b0b1477989045ead298c0af9f08dd8e0aedac5ea Mon Sep 17 00:00:00 2001 From: Liam Steckler Date: Wed, 17 Nov 2021 08:27:06 -0800 Subject: [PATCH 33/48] Added label for Maccy clipboard manager --- fragments/labels/maccyapp.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/maccyapp.sh diff --git a/fragments/labels/maccyapp.sh b/fragments/labels/maccyapp.sh new file mode 100644 index 0000000..7ea7be4 --- /dev/null +++ b/fragments/labels/maccyapp.sh @@ -0,0 +1,7 @@ +maccyapp) + name="Maccy" + type="zip" + downloadURL="$(downloadURLFromGit p0deje Maccy)" + appNewVersion="$(versionFromGit p0deje Maccy)" + expectedTeamID="MN3X4648SC" + ;; From 85cb09df342a9593c3ec47005f57ff1f23cc6e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20B=C3=BChler?= <48823479+adibue@users.noreply.github.com> Date: Wed, 17 Nov 2021 17:31:02 +0100 Subject: [PATCH 34/48] Added 'nudge' to Labels.txt --- Labels.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Labels.txt b/Labels.txt index 1986992..2ccc883 100644 --- a/Labels.txt +++ b/Labels.txt @@ -204,6 +204,7 @@ nextcloud nomad nomadlogin notion +nudge nvivo obs obsidian From 996e85ad242898563d3f37db474f74ca1fbec651 Mon Sep 17 00:00:00 2001 From: Dan Kuehling Date: Wed, 17 Nov 2021 11:42:54 -0600 Subject: [PATCH 35/48] Create overflow.sh Label for overflow.io user flow diagram creator app. --- fragments/labels/overflow.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 fragments/labels/overflow.sh diff --git a/fragments/labels/overflow.sh b/fragments/labels/overflow.sh new file mode 100644 index 0000000..6ca5eac --- /dev/null +++ b/fragments/labels/overflow.sh @@ -0,0 +1,8 @@ +overflow) + name="Overflow" + type="dmg" + downloadURL="$(curl -sL 'https://overflow.io/download/' | awk -F '"' '/app-updates.overflow.io\/packages\/updates\/osx_64/ { print $8; exit }')" + appNewVersion=$(echo "$downloadURL" | awk -F '-|[.]dmg' '{ print $(NF-1) }') + expectedTeamID="7TK7YSGJFF" + versionKey="CFBundleShortVersionString" + ;; From 2a8bd0d2e8321acf3adbff977f30fabae10ffda2 Mon Sep 17 00:00:00 2001 From: Liam Steckler <553265+buckbanzai@users.noreply.github.com> Date: Wed, 17 Nov 2021 09:46:34 -0800 Subject: [PATCH 36/48] Added label for Talkdesk Callbar --- fragments/labels/talkdeskcallbar.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/talkdeskcallbar.sh diff --git a/fragments/labels/talkdeskcallbar.sh b/fragments/labels/talkdeskcallbar.sh new file mode 100644 index 0000000..2be29e2 --- /dev/null +++ b/fragments/labels/talkdeskcallbar.sh @@ -0,0 +1,7 @@ +talkdeskcallbar) + name="Callbar" + type="dmg" + downloadURL=https://downloadcallbar.talkdesk.com/Callbar-$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p').dmg + appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p') + expectedTeamID="YGGJX44TB8" + ;; \ No newline at end of file From 333b03e110707815d0813992ca67f3f4ac72b490 Mon Sep 17 00:00:00 2001 From: Liam Steckler <553265+buckbanzai@users.noreply.github.com> Date: Wed, 17 Nov 2021 09:48:00 -0800 Subject: [PATCH 37/48] Added label for Talkdesk Callbar, added newline --- fragments/labels/talkdeskcallbar.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/talkdeskcallbar.sh b/fragments/labels/talkdeskcallbar.sh index 2be29e2..9487d44 100644 --- a/fragments/labels/talkdeskcallbar.sh +++ b/fragments/labels/talkdeskcallbar.sh @@ -4,4 +4,4 @@ talkdeskcallbar) downloadURL=https://downloadcallbar.talkdesk.com/Callbar-$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p').dmg appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p') expectedTeamID="YGGJX44TB8" - ;; \ No newline at end of file + ;; From f062d49bfdf2418353afa15854a5d63d2f964aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 17 Nov 2021 19:36:05 +0100 Subject: [PATCH 38/48] mattermost universal --- fragments/labels/mattermost.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/fragments/labels/mattermost.sh b/fragments/labels/mattermost.sh index d7a89d9..f5fc1ca 100644 --- a/fragments/labels/mattermost.sh +++ b/fragments/labels/mattermost.sh @@ -1,11 +1,7 @@ mattermost) name="Mattermost" type="dmg" - if [[ $(arch) == i386 ]]; then - archiveName="mac-x64.dmg" - elif [[ $(arch) == arm64 ]]; then - archiveName="mac-m1.dmg" - fi + archiveName="mac-universal.dmg" downloadURL=$(downloadURLFromGit mattermost desktop) appNewVersion=$(versionFromGit mattermost desktop ) expectedTeamID="UQ8HT4Q2XM" From b78bc12fffcbe1b968f97f84be807b2fa69f1da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 18 Nov 2021 21:26:10 +0100 Subject: [PATCH 39/48] Update mattermost.sh --- fragments/labels/mattermost.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/fragments/labels/mattermost.sh b/fragments/labels/mattermost.sh index f5fc1ca..532a436 100644 --- a/fragments/labels/mattermost.sh +++ b/fragments/labels/mattermost.sh @@ -5,4 +5,5 @@ mattermost) downloadURL=$(downloadURLFromGit mattermost desktop) appNewVersion=$(versionFromGit mattermost desktop ) expectedTeamID="UQ8HT4Q2XM" + Mattermost Helper (Renderer).app app.asar ;; From 3e6ef1a6eefaa103b2b50b12cc8a129ead977c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 18 Nov 2021 21:30:11 +0100 Subject: [PATCH 40/48] Update smartgit.sh --- fragments/labels/smartgit.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fragments/labels/smartgit.sh b/fragments/labels/smartgit.sh index 347c402..7abb0ad 100644 --- a/fragments/labels/smartgit.sh +++ b/fragments/labels/smartgit.sh @@ -1,7 +1,11 @@ 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")" + if [[ $(arch) == "arm64" ]]; then + downloadURL="https://www.syntevo.com$(curl -fs "https://www.syntevo.com/smartgit/download/" | grep -i -o -E "/downloads/.*/smartgit.*\.dmg" | tail -1)" + elif [[ $(arch) == "i386" ]]; then + downloadURL="https://www.syntevo.com$(curl -fs "https://www.syntevo.com/smartgit/download/" | grep -i -o -E "/downloads/.*/smartgit.*\.dmg" | head -1)" + fi appNewVersion="$(curl -fs "https://www.syntevo.com/smartgit/changelog.txt" | grep -i -E "SmartGit *[0-9.]* *.*" | head -1 | awk '{print $2}')" expectedTeamID="PHMY45PTNW" ;; From f5fcca7b89f33af9cb15399c8b058d42cf99a637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 19 Nov 2021 14:44:58 +0100 Subject: [PATCH 41/48] jabradirect version-fix --- fragments/labels/jabradirect.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fragments/labels/jabradirect.sh b/fragments/labels/jabradirect.sh index e0b789b..4359ac6 100644 --- a/fragments/labels/jabradirect.sh +++ b/fragments/labels/jabradirect.sh @@ -1,7 +1,8 @@ jabradirect) name="Jabra Direct" type="pkgInDmg" + packageID="com.jabra.directonline" downloadURL="https://jabraxpressonlineprdstor.blob.core.windows.net/jdo/JabraDirectSetup.dmg" + appNewVersion=$(curl -fs https://www.jabra.com/Support/release-notes/release-note-jabra-direct | grep -oe "Release version:.*[0-9.]*<" | head -1 | cut -d ">" -f2 | cut -d "<" -f1 | sed 's/ //g') 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 b6f0afb8baa53ef95af9600e2f17db05a571520a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 19 Nov 2021 14:59:15 +0100 Subject: [PATCH 42/48] Fixed pkg teamID calculation --- utils/buildLabel.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/buildLabel.sh b/utils/buildLabel.sh index ec70022..6d74380 100755 --- a/utils/buildLabel.sh +++ b/utils/buildLabel.sh @@ -61,9 +61,9 @@ versionFromGit() { pkgInvestigation() { echo "Package investigation." - teamID=$(spctl -a -vv -t install "$archiveName" 2>&1 | awk '/origin=/ {print $NF }' | tr -d '()' ) + teamID=$(spctl -a -vv -t install "$pkgPath" 2>&1 | awk '/origin=/ {print $NF }' | tr -d '()' ) if [[ -z $teamID ]]; then - echo "Error verifying PKG: $archiveName" + echo "Error verifying PKG: $pkgPath" echo "No TeamID found." exit 4 fi From 9f42fb9501cee074ee250706da72326d636a7656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 22 Nov 2021 08:57:50 +0100 Subject: [PATCH 43/48] Create findanyfile.sh --- fragments/labels/findanyfile.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 fragments/labels/findanyfile.sh diff --git a/fragments/labels/findanyfile.sh b/fragments/labels/findanyfile.sh new file mode 100644 index 0000000..2061ac0 --- /dev/null +++ b/fragments/labels/findanyfile.sh @@ -0,0 +1,7 @@ +findanyfile) + name="Find Any File" + type="zip" + downloadURL=$(curl -fs "https://findanyfile.app/appcast2.php" | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | cut -d '"' -f2) + appNewVersion=$(curl -fs "https://findanyfile.app/appcast2.php" | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | cut -d '"' -f2) + expectedTeamID="25856V4B4X" + ;; From a3fe713e5569e8b4c45ffaa5bbc6129d1e2e6ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 22 Nov 2021 09:01:42 +0100 Subject: [PATCH 44/48] Update Labels.txt --- Labels.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Labels.txt b/Labels.txt index 46044e0..a805ac5 100644 --- a/Labels.txt +++ b/Labels.txt @@ -94,6 +94,7 @@ fastscripts favro ferdi figma +findanyfile firefox firefox_da firefox_intl From 5bb584a2d29128d7164b1b5e31654057929fd48e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 22 Nov 2021 09:51:43 +0100 Subject: [PATCH 45/48] Update r.sh --- fragments/labels/r.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fragments/labels/r.sh b/fragments/labels/r.sh index 3151eba..1c98852 100644 --- a/fragments/labels/r.sh +++ b/fragments/labels/r.sh @@ -1,8 +1,7 @@ r) - # credit: Tadayuki Onishi (@kenchan0130) name="R" type="pkg" - downloadURL=$( curl -fsL https://formulae.brew.sh/api/cask/r.json | sed -n 's/^.*"url":"\([^"]*\)".*$/\1/p' ) - appNewVersion=$(curl -fsL https://formulae.brew.sh/api/cask/r.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p') + downloadURL="https://cloud.r-project.org/bin/macosx/$( curl -fsL https://cloud.r-project.org/bin/macosx/ | grep -m 1 -o '' | sed -E 's/.+"(.+)".+/\1/g' )" + appNewVersion=$(echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="VZLD955F6P" ;; From 385f9c1a0403758eacd3df7a6c10c4a61d4474f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 22 Nov 2021 10:17:59 +0100 Subject: [PATCH 46/48] microsoftedge --- fragments/labels/microsoftedge.sh | 5 +++-- fragments/labels/microsoftedgeenterprisestable.sh | 14 -------------- 2 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 fragments/labels/microsoftedgeenterprisestable.sh diff --git a/fragments/labels/microsoftedge.sh b/fragments/labels/microsoftedge.sh index 7c72af7..b252929 100644 --- a/fragments/labels/microsoftedge.sh +++ b/fragments/labels/microsoftedge.sh @@ -1,8 +1,9 @@ microsoftedge|\ -microsoftedgeconsumerstable) +microsoftedgeconsumerstable|\ +microsoftedgeenterprisestable) name="Microsoft Edge" type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=2069148" + downloadURL="https://go.microsoft.com/fwlink/?linkid=2093504" #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.edge"]/cfbundleversion' 2>/dev/null | sed -E 's/([0-9.]*)<.*/\1/') appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/MicrosoftEdge.*pkg" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') expectedTeamID="UBF8T346G9" diff --git a/fragments/labels/microsoftedgeenterprisestable.sh b/fragments/labels/microsoftedgeenterprisestable.sh deleted file mode 100644 index 22c6667..0000000 --- a/fragments/labels/microsoftedgeenterprisestable.sh +++ /dev/null @@ -1,14 +0,0 @@ -microsoftedgeenterprisestable) - name="Microsoft Edge" - type="pkg" - downloadURL="https://go.microsoft.com/fwlink/?linkid=2093438" - #appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.edge"]/version' 2>/dev/null | sed -E 's/([0-9.]*) .*/\1/') - appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/MicrosoftEdge.*pkg" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g') - expectedTeamID="UBF8T346G9" - if [[ -x "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" && $INSTALL != "force" ]]; then - printlog "Running msupdate --list" - "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" --list - fi - updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate" - updateToolArguments=( --install --apps EDGE01 ) - ;; From 7e56354cb1f639f4bb02f595aa5810b826aa3a46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 22 Nov 2021 10:42:19 +0100 Subject: [PATCH 47/48] Labels from #289 --- Labels.txt | 14 +++++++++++++- fragments/labels/chatwork.sh | 6 ++++++ fragments/labels/jetbrainsrubymine.sh | 13 +++++++++++++ fragments/labels/sequelpro.sh | 7 +++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 fragments/labels/chatwork.sh create mode 100644 fragments/labels/jetbrainsrubymine.sh create mode 100644 fragments/labels/sequelpro.sh diff --git a/Labels.txt b/Labels.txt index a805ac5..9f4f73b 100644 --- a/Labels.txt +++ b/Labels.txt @@ -11,6 +11,7 @@ aircall airserver airtame aldente +alephone alfred alttab amazonchime @@ -49,16 +50,19 @@ boxdrive boxsync boxtools brave +bugdom caffeine cakebrew calibre camostudio camtasia canva +chatwork cisdem-documentreader citrixworkspace clevershare2 clickshare +closeio cloudya code42 coderunner @@ -85,6 +89,7 @@ easeusdatarecoverywizard egnyte element eraseinstall +eshareosx etrecheck evernote exelbanstats @@ -151,6 +156,7 @@ jetbrainsintellijideace jetbrainsphpstorm jetbrainspycharm jetbrainspycharmce +jetbrainsrubymine jetbrainstoolbox jetbrainswebstorm karabinerelements @@ -173,6 +179,9 @@ lulu macfuse macports malwarebytes +marathon +marathon2 +marathoninfinity mattermost menumeters microsoftautoupdate @@ -224,6 +233,7 @@ onlyofficedesktop openvpnconnect openvpnconnectv3 opera +ottomatic pacifist pandoc parsec @@ -264,6 +274,7 @@ scaleft screamingfrogseospider screencloudplayer screenflick +sequelpro sfsymbols shield sidekick @@ -327,7 +338,7 @@ vivaldi vlc vmwarehorizonclient vscodium -wallyezflash +wacomdrivers webex webexmeetings webexteams @@ -344,6 +355,7 @@ yubikeymanagerqt zappy zeplin zohoworkdrive +zohoworkdrivetruesync zoom zoomclient zoomgov diff --git a/fragments/labels/chatwork.sh b/fragments/labels/chatwork.sh new file mode 100644 index 0000000..f8fb708 --- /dev/null +++ b/fragments/labels/chatwork.sh @@ -0,0 +1,6 @@ +chatwork) + name="Chatwork" + type="dmg" + downloadURL="https://desktop-app.chatwork.com/installer/Chatwork.dmg" + expectedTeamID="H34A3H2Y54" + ;; diff --git a/fragments/labels/jetbrainsrubymine.sh b/fragments/labels/jetbrainsrubymine.sh new file mode 100644 index 0000000..cd140e2 --- /dev/null +++ b/fragments/labels/jetbrainsrubymine.sh @@ -0,0 +1,13 @@ +jetbrainsrubymine) + name="RubyMine" + type="dmg" + jetbrainscode="RM" + 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" + ;; diff --git a/fragments/labels/sequelpro.sh b/fragments/labels/sequelpro.sh new file mode 100644 index 0000000..9e7af69 --- /dev/null +++ b/fragments/labels/sequelpro.sh @@ -0,0 +1,7 @@ +sequelpro) + name="Sequel Pro" + type="dmg" + downloadURL="$(downloadURLFromGit sequelpro sequelpro)" + appNewVersion="$(versionFromGit sequelpro sequelpro)" + expectedTeamID="Media" + ;; From 8089187598165568c9d11182d34112ae22b97d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 22 Nov 2021 10:53:05 +0100 Subject: [PATCH 48/48] superhuman version --- Labels.txt | 1 + fragments/labels/superhuman.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/Labels.txt b/Labels.txt index 5e72460..9876777 100644 --- a/Labels.txt +++ b/Labels.txt @@ -276,6 +276,7 @@ sourcetree splashtopsos spotify sublimetext +superhuman supportapp suspiciouspackage swiftruntimeforcommandlinetools diff --git a/fragments/labels/superhuman.sh b/fragments/labels/superhuman.sh index 3c757df..f64f8b8 100644 --- a/fragments/labels/superhuman.sh +++ b/fragments/labels/superhuman.sh @@ -6,5 +6,6 @@ superhuman) elif [[ $(arch) == "i386" ]]; then downloadURL="https://download.superhuman.com/Superhuman.dmg" fi + appNewVersion=$(curl -fs "https://storage.googleapis.com/download.superhuman.com/supertron-update/latest-mac.yml" | head -1 | cut -d " " -f2) expectedTeamID="6XHFYUTQGX" ;;