From 59ca90759dbc9c49b41107363015c9a2afa83232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 18 Jun 2021 08:49:17 +0200 Subject: [PATCH 01/12] Evernote --- Installomator.sh | 8 ++++++++ Labels.txt | 1 + 2 files changed, 9 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index 5af1a26..3b0df16 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -1366,6 +1366,14 @@ etrecheck) downloadURL="https://cdn.etrecheck.com/EtreCheckPro.zip" expectedTeamID="U87NE528LC" ;; +evernote) + name="Evernote" + type="dmg" + downloadURL=$(curl -fs -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" "https://evernote.com/download" | grep -i ".dmg" | cut -d '"' -f2) + appNewVersion=$( echo "${downloadURL}" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-.*/\1/g' ) + expectedTeamID="Q79WDW8YH9" + appName="Evernote.app" + ;; exelbanstats) # credit: Søren Theilgaard (@theilgaard) name="Stats" diff --git a/Labels.txt b/Labels.txt index 8e0aa6d..239b005 100644 --- a/Labels.txt +++ b/Labels.txt @@ -64,6 +64,7 @@ egnyte element eraseinstall etrecheck +evernote exelbanstats fantastical ferdi From 86e63df1a646a830b6206016b4d7ecb975f862fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Tue, 22 Jun 2021 10:48:19 +0200 Subject: [PATCH 02/12] sourcetree changed Maybe not using Sparkle anymore --- Installomator.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Installomator.sh b/Installomator.sh index 3b0df16..7da5984 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -2452,10 +2452,8 @@ sonoss2) sourcetree) name="Sourcetree" type="zip" - downloadURL=$(curl -fs https://product-downloads.atlassian.com/software/sourcetree/Appcast/SparkleAppcastAlpha.xml \ - | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null \ - | cut -d '"' -f 2 ) - appNewVersion=$(curl -fs https://product-downloads.atlassian.com/software/sourcetree/Appcast/SparkleAppcastAlpha.xml | xpath '//rss/channel/item[last()]/title' 2>/dev/null | sed -n -e 's/^.*Version //p' | sed 's/\<\/title\>//' | sed $'s/[^[:print:]\t]//g') + downloadURL=$(curl -fs "https://www.sourcetreeapp.com" | grep -i "macURL" | tr '"' '\n' | grep -io "https://.*/Sourcetree.*\.zip" | tail -1) + appNewVersion=$(echo "${downloadURL}" | sed -E 's/.*\/Sourcetree_([0-9.]*)_[0-9]*\.zip/\1/g') expectedTeamID="UPXU4CQZ5P" ;; spotify) From 7b16678e95f80527cf533db75467c451f60e87c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 24 Jun 2021 11:56:50 +0200 Subject: [PATCH 03/12] visualstudiocode change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Name of process changed to “Code”. --- Installomator.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index 7da5984..6e5b5d5 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -3140,7 +3140,7 @@ visualstudiocode) appNewVersion=$(curl -fsL "https://code.visualstudio.com/Updates" | grep "/darwin" | grep -oiE ".com/([^>]+)([^<]+)/darwin" | cut -d "/" -f 2 | sed $'s/[^[:print:]\t]//g' | head -1 ) expectedTeamID="UBF8T346G9" appName="Visual Studio Code.app" - blockingProcesses=( Electron ) + blockingProcesses=( Code ) ;; microsoftword) name="Microsoft Word" From 76e1e9d0a3ab47f48b57b8162c8ffb42de1573b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Sun, 27 Jun 2021 13:38:16 +0200 Subject: [PATCH 04/12] appNewVersion in theunarchiver --- Installomator.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installomator.sh b/Installomator.sh index 6e5b5d5..ebfbaa8 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -2562,7 +2562,7 @@ theunarchiver) name="The Unarchiver" type="dmg" downloadURL="https://dl.devmate.com/com.macpaw.site.theunarchiver/TheUnarchiver.dmg" - #appNewVersion="" + appNewVersion="$(curl -fs "https://theunarchiver.com" | grep -i "Latest version" | head -1 | sed -E 's/.*> ([0-9.]*) .*/\1/g')" expectedTeamID="S8EX82NJP6" appName="The Unarchiver.app" ;; From 5410739f99fec3395c36b42e9e1d28a11d6ddfe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 28 Jun 2021 12:52:46 +0200 Subject: [PATCH 05/12] anydesk --- Installomator.sh | 7 +++++++ Labels.txt | 1 + 2 files changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index ebfbaa8..408c96b 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -950,6 +950,13 @@ androidfiletransfer) downloadURL="https://dl.google.com/dl/androidjumper/mtp/current/AndroidFileTransfer.dmg" expectedTeamID="EQHXZ8M8AV" ;; +anydesk) + name="AnyDesk" + type="dmg" + downloadURL="https://download.anydesk.com/anydesk.dmg" + appNewVersion="$(curl -fs https://anydesk.com/da/downloads/mac-os | grep -i "d-block" | grep -E -o ">v[0-9.]* .*MB" | sed -E 's/.*v([0-9.]*) .*/\1/g')" + expectedTeamID="KU6W3B6JMZ" + ;; apparency) name="Apparency" type="dmg" diff --git a/Labels.txt b/Labels.txt index 239b005..0a4deed 100644 --- a/Labels.txt +++ b/Labels.txt @@ -12,6 +12,7 @@ alfred amazonchime amazonworkspaces androidfiletransfer +anydesk apparency appcleaner applenyfonts From f5e800a190a7c2ccae91caf9915a5c69a5fde72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 30 Jun 2021 08:59:33 +0200 Subject: [PATCH 06/12] favro --- Installomator.sh | 7 +++++++ Labels.txt | 1 + 2 files changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index 408c96b..b26d9fd 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -1397,6 +1397,13 @@ fantastical) appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*_([0-9.]*)\..*/\1/g' ) expectedTeamID="85C27NK92C" ;; +favro) + name="Favro" + type="dmg" + downloadURL="https://download.favro.com/FavroDesktop/macOS/x64/$(curl -fs https://download.favro.com/FavroDesktop/macOS/x64/Latest.html | cut -d ">" -f1 | cut -d "=" -f 4 | cut -d '"' -f1)" + appNewVersion="$(curl -fs https://download.favro.com/FavroDesktop/macOS/x64/Latest.html | cut -d ">" -f1 | cut -d "=" -f 4 | cut -d '"' -f1 | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')" + expectedTeamID="PUA8Q354ZF" + ;; ferdi) # credit: Adrian Bühler (@midni9ht) name="Ferdi" diff --git a/Labels.txt b/Labels.txt index 0a4deed..b1b16b1 100644 --- a/Labels.txt +++ b/Labels.txt @@ -68,6 +68,7 @@ etrecheck evernote exelbanstats fantastical +favro ferdi figma firefox From 00b0e4dcfd03647cbf644d93a4b5cbddd70a8078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 1 Jul 2021 10:03:56 +0200 Subject: [PATCH 07/12] SiriMote --- Installomator.sh | 7 +++++++ Labels.txt | 1 + 2 files changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index b26d9fd..14fc792 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -2399,6 +2399,13 @@ silnite) expectedTeamID="QWY4LRW926" blockingProcesses=( NONE ) ;; +sirimote) + name="SiriMote" + type="zip" + downloadURL="http://bit.ly/sirimotezip" + #appNewVersion="" # Not found on web page + expectedTeamID="G78RJ6NLJU" + ;; sizeup) # credit: AP Orlebeke (@apizz) name="SizeUp" diff --git a/Labels.txt b/Labels.txt index b1b16b1..6a75bc6 100644 --- a/Labels.txt +++ b/Labels.txt @@ -218,6 +218,7 @@ shield sidekick signal silnite +sirimote sizeup sketch skype From fd057b9918c3306810209840652b2bc543e5c7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 1 Jul 2021 14:48:42 +0200 Subject: [PATCH 08/12] 4kvideodownloader --- Installomator.sh | 7 +++++++ Labels.txt | 1 + 2 files changed, 8 insertions(+) diff --git a/Installomator.sh b/Installomator.sh index 14fc792..8ed4e4c 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -849,6 +849,13 @@ longversion) blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" ) #forcefulQuit=YES ;; +4kvideodownloader) + name="4K Video Downloader" + type="dmg" + downloadURL="$(curl -fsL "https://www.4kdownload.com/products/product-videodownloader" | grep -E -o "https:\/\/dl\.4kdownload\.com\/app\/4kvideodownloader_.*?.dmg\?source=website" | head -1)" + appNewVersion=$(echo "${downloadURL}" | sed -E 's/.*\/[0-9a-zA-Z]*_([0-9.]*)\.dmg.*/\1/g') + expectedTeamID="GHQ37VJF83" + ;; 8x8) # credit: #D-A-James from MacAdmins Slack and Isaac Ordonez, Mann consulting (@mannconsulting) name="8x8 Work" diff --git a/Labels.txt b/Labels.txt index 6a75bc6..7c0896a 100644 --- a/Labels.txt +++ b/Labels.txt @@ -1,4 +1,5 @@ 1password7 +4kvideodownloader 8x8 abstract adobebrackets From 18e265d60b40c8561952407e2f2f7b9620440c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 1 Jul 2021 14:59:11 +0200 Subject: [PATCH 09/12] Update buildCaseStatement.sh Works a lot better! --- buildCaseStatement.sh | 74 +------------------------------------------ 1 file changed, 1 insertion(+), 73 deletions(-) diff --git a/buildCaseStatement.sh b/buildCaseStatement.sh index 583c85f..9b7538b 100755 --- a/buildCaseStatement.sh +++ b/buildCaseStatement.sh @@ -5,6 +5,7 @@ export PATH=/usr/bin:/bin:/usr/sbin:/sbin downloadURL=${1?:"need to provide a download URL"} # Note: this tool _very_ experimental and does not work in many cases +# That being said, it's a great place to start for building up the label in the Case-statement # create temporary working directory @@ -20,15 +21,7 @@ fi # download the URL echo "Downloading $downloadURL" -<<<<<<< HEAD -<<<<<<< Updated upstream -if ! archivePath=$(curl -fsL "$downloadURL" --remote-header-name --remote-name -w "%{filename_effective}"); then -======= if ! downloadOut="$(curl -fsL "$downloadURL" --remote-header-name --remote-name -w "%{filename_effective}\n%{url_effective}\n")"; then ->>>>>>> Stashed changes -======= -if ! downloadOut="$(curl -fsL "$downloadURL" --remote-header-name --remote-name -w "%{filename_effective}\n%{url_effective}\n")"; then ->>>>>>> 4932ea6a3186d902d88c9bb5a3774c6ff81b1608 echo "error downloading $downloadURL" exit 2 fi @@ -44,13 +37,6 @@ xpath() { fi } -<<<<<<< HEAD -<<<<<<< Updated upstream -#archivePath=$(find $tmpDir -print ) -echo "archivePath: $archivePath" -archiveName=${archivePath##*/} -echo "archiveName: $archiveName" -======= pkgInvestigation() { echo "Package found" teamID=$(spctl -a -vv -t install "$archiveName" 2>&1 | awk '/origin=/ {print $NF }' | tr -d '()' ) @@ -81,39 +67,6 @@ echo "archivePath: $archivePath" archiveName=${archivePath##*/} echo "archiveName: $archiveName" mv $archiveTempName $archiveName ->>>>>>> Stashed changes -======= -pkgInvestigation() { - echo "Package found" - teamID=$(spctl -a -vv -t install "$archiveName" 2>&1 | awk '/origin=/ {print $NF }' | tr -d '()' ) - echo "For PKGs it's advised to find packageID for version checking" - - pkgutil --expand "$pkgPath" "$archiveName"_pkg - cat "$archiveName"_pkg/Distribution | xpath '//installer-gui-script/pkg-ref[@id][@version]' 2>/dev/null - packageID="$(cat "$archiveName"_pkg/Distribution | xpath '//installer-gui-script/pkg-ref[@id][@version]' 2>/dev/null | tr ' ' '\n' | grep -i "id" | cut -d \" -f 2)" - rm -r "$archiveName"_pkg - echo "$packageID" - echo "Above is the possible packageIDs that can be used, and the correct one is probably one of those with a version number. More investigation might be needed to figure out correct packageID if several are displayed." -} -appInvestigation() { - appName=${appPath##*/} - - # verify with spctl - echo "Verifying: $appPath" - if ! teamID=$(spctl -a -vv "$appPath" 2>&1 | awk '/origin=/ {print $NF }' | tr -d '()' ); then - echo "Error verifying $appPath" - exit 4 - fi -} -echo "downloadOut: ${downloadOut}" -archiveTempName=$( echo "${downloadOut}" | head -1 ) -echo "archiveTempName: $archiveTempName" -archivePath=$( echo "${downloadOut}" | tail -1 ) -echo "archivePath: $archivePath" -archiveName=${archivePath##*/} -echo "archiveName: $archiveName" -mv $archiveTempName $archiveName ->>>>>>> 4932ea6a3186d902d88c9bb5a3774c6ff81b1608 name=${archiveName%.*} echo "name: $name" archiveExt=${archiveName##*.} @@ -122,25 +75,8 @@ identifier=$(echo $name | tr '[:upper:]' '[:lower:]') echo "identifier: $identifier" if [ "$archiveExt" = "pkg" ]; then -<<<<<<< HEAD -<<<<<<< Updated upstream - echo "Package found" - teamID=$(spctl -a -vv -t install "$archiveName" 2>&1 | awk '/origin=/ {print $NF }' | tr -d '()' ) - echo "For PKGs it's advised to find packageID for version checking" - pkgutil --expand "$archiveName" "$archiveName"_pkg - cat "$archiveName"_pkg/Distribution | xpath '//installer-gui-script/pkg-ref[@id][@version]' 2>/dev/null - packageID="$(cat "$archiveName"_pkg/Distribution | xpath '//installer-gui-script/pkg-ref[@id][@version]' 2>/dev/null | tr ' ' '\n' | grep -i "id" | cut -d \" -f 2)" - rm -r "$archiveName"_pkg - echo "$packageID" - echo "Above is the possible packageIDs that can be used, and the correct one is probably one of those with a version number. More investigation might be needed to figure out correct packageID if several are displayed." -======= pkgPath="$archiveName" pkgInvestigation ->>>>>>> Stashed changes -======= - pkgPath="$archiveName" - pkgInvestigation ->>>>>>> 4932ea6a3186d902d88c9bb5a3774c6ff81b1608 elif [ "$archiveExt" = "dmg" ]; then echo "Diskimage found" # mount the dmg @@ -182,15 +118,7 @@ elif [ "$archiveExt" = "zip" ] || [ "$archiveExt" = "tbz" ]; then fi echo -<<<<<<< HEAD -<<<<<<< Updated upstream -echo "appNewVersion is often difficult to find. Can sometimes be found in the filename, but also on a web page." -======= echo "appNewVersion is often difficult to find. Can sometimes be found in the filename, but also on a web page. See archivePath above if link contains information about this." ->>>>>>> Stashed changes -======= -echo "appNewVersion is often difficult to find. Can sometimes be found in the filename, but also on a web page. See archivePath above if link contains information about this." ->>>>>>> 4932ea6a3186d902d88c9bb5a3774c6ff81b1608 echo echo "$identifier)" echo " name=\"$name\"" From 52c5ebf4ffd3eea61b91a117ba090f16c4a6c4e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 1 Jul 2021 15:15:18 +0200 Subject: [PATCH 10/12] 4kvideodownloader `versionKey` addition. --- Installomator.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Installomator.sh b/Installomator.sh index 8ed4e4c..aab9ae6 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -854,6 +854,7 @@ longversion) type="dmg" downloadURL="$(curl -fsL "https://www.4kdownload.com/products/product-videodownloader" | grep -E -o "https:\/\/dl\.4kdownload\.com\/app\/4kvideodownloader_.*?.dmg\?source=website" | head -1)" appNewVersion=$(echo "${downloadURL}" | sed -E 's/.*\/[0-9a-zA-Z]*_([0-9.]*)\.dmg.*/\1/g') + versionKey="CFBundleVersion" expectedTeamID="GHQ37VJF83" ;; 8x8) From 557500e21405bac54d1ef1688b31c2a7df4d7bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 2 Jul 2021 09:14:14 +0200 Subject: [PATCH 11/12] CHANGELOG --- CHANGELOG.md | 4 ++++ buildCaseStatement.sh | 3 +++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c6df07..9753a7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +- Change in finding installed apps. We now look in /Applications and /Applications/Utilities first. If not found there, we use spotligt to find it. (We discovered a problem when a user has Parallels Windows installed with Microsoft Edge in it. Then Installomator wanted to update the app all the time, becaus spotligt found that Windows version of the app that Parallels created.) +- Added bunch of new labels +- Improved `buildCaseStatement.sh` a lot. It is a great start when figuring out how to create a new label for an app, or a piece of software. + ## v0.5 - 2021-04-13 - Major update and now with help from @Theile and @Isaac diff --git a/buildCaseStatement.sh b/buildCaseStatement.sh index 9b7538b..060f75f 100755 --- a/buildCaseStatement.sh +++ b/buildCaseStatement.sh @@ -7,6 +7,9 @@ downloadURL=${1?:"need to provide a download URL"} # Note: this tool _very_ experimental and does not work in many cases # That being said, it's a great place to start for building up the label in the Case-statement +# Usage +# ./buildCaseStatement.sh + # create temporary working directory tmpDir=$(dirname $0 ) From f8d578a6d7ddb8c3bd18a2d3590bb8440e556e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 2 Jul 2021 09:23:45 +0200 Subject: [PATCH 12/12] mosyleb icon --- CHANGELOG.md | 1 + Installomator.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9753a7a..4ced6ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ - Change in finding installed apps. We now look in /Applications and /Applications/Utilities first. If not found there, we use spotligt to find it. (We discovered a problem when a user has Parallels Windows installed with Microsoft Edge in it. Then Installomator wanted to update the app all the time, becaus spotligt found that Windows version of the app that Parallels created.) - Added bunch of new labels - Improved `buildCaseStatement.sh` a lot. It is a great start when figuring out how to create a new label for an app, or a piece of software. +- Mosyle changed their app name from Business to Self-Service ## v0.5 - 2021-04-13 diff --git a/Installomator.sh b/Installomator.sh index aab9ae6..0956f63 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -3261,7 +3261,7 @@ case $LOGO in ;; mosyleb) # Mosyle Business - LOGO="/Applications/Business.app/Contents/Resources/AppIcon.icns" + LOGO="/Applications/Self-Service.app/Contents/Resources/AppIcon.icns" ;; mosylem) # Mosyle Manager (education)