6 Commits

Author SHA1 Message Date
Søren Theilgaard
dbb027399e Merge branch 'Variable-for-skipping-if-app-is-not-installed' of https://github.com/Installomator/Installomator into Variable-for-skipping-if-app-is-not-installed 2022-03-03 21:42:05 +01:00
Søren Theilgaard
f5db340589 Update functions.sh 2022-03-03 21:41:48 +01:00
Søren Theilgaard
31e376789f Update CHANGELOG.md 2022-03-03 21:38:02 +01:00
Søren Theilgaard
c049dc4a92 Update CHANGELOG.md 2022-03-03 16:27:16 +01:00
Søren Theilgaard
e5541fb97a Merge branch 'main' into Variable-for-skipping-if-app-is-not-installed 2022-03-03 16:25:53 +01:00
Søren Theilgaard
4cee224d17 Variable SKIP_UNINSTALLED introduced
Fixes #321.
2022-02-08 13:46:05 +01:00
36 changed files with 94 additions and 438 deletions

View File

@@ -1,36 +1,6 @@
## v9.1
**Note**: Both Google and Mozilla recommend using the pkg installers instead of the dmg downloads for managed deployments. So far, Installomator has provided labels for both. (`googlechrome` and `googlechromepkg` or `firefox` and `firefoxpkg`, respectively) Since there are problems with the dmg downloads, a future release of Installomator will _disable_ the `firefox` and `googlechrome` dmg labels. You should switch to using the respective pkg labels instead.
- added option for Microsoft Endpoint Manager (Intune) to `LOGO` (#446)
- minor fixes (#427, #434, #436)
- the `googlechrome` label now always downloads the universal version (#430)
- new labels:
- 1passwordcli (#429)
- amazoncorretto8jdk (#423)
- autodeskfusion360admininstall (#447)
- axurerp10 (#439)
- calcservice (#426)
- clipy (#412)
- dockutil (#432)
- easyfind (#426)
- grammarly (#444)
- houdahspot (#426)
- macadminspython (#431)
- microsoftazuredatastudio (#438)
- nanosaur (#426)
- tembo (#426)
- wordservice (#426)
- xmenu (#426)
- updated labels:
- appcleaner (#428)
- dialog (#435, #437)
- googlechrome (#430)
- microsoftdefender (#440)
- supportapp (#426)
- zoom and zoomgov (#426, #433)
## v10.0
- Introducing variable `SKIP_UNINSTALLED` that normally will be `0` and the script will run and install the software label if other conditions align with this. Use `SKIP_UNINSTALLED=1` to have the script stop if a current installation of the app is not found.
## v9.0.1

View File

@@ -80,7 +80,6 @@ LOGO=appstore
# - mosyleb Mosyle Business
# - mosylem Mosyle Manager (Education)
# - addigy Addigy
# - microsoft Microsoft Endpoint Manager (Intune)
# path can also be set in the command call, and if file exists, it will be used.
# Like 'LOGO="/System/Applications/App\ Store.app/Contents/Resources/AppIcon.icns"'
# (spaces have to be escaped).
@@ -302,8 +301,8 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then
rosetta2=no
fi
fi
VERSION="9.1"
VERSIONDATE="2022-03-18"
VERSION="9.0.1"
VERSIONDATE="2022-02-20"
# MARK: Functions
@@ -463,10 +462,10 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name
fi
if [ -n "$archiveName" ]; then
downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
| awk -F '"' "/browser_download_url/ && /$archiveName\"/ { print \$4; exit }")
else
downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
| awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
fi
if [ -z "$downloadURL" ]; then
@@ -483,7 +482,7 @@ versionFromGit() {
gitusername=${1?:"no git user name"}
gitreponame=${2?:"no git repo name"}
appNewVersion=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | grep tag_name | cut -d '"' -f 4 | sed 's/[^0-9\.]//g')
appNewVersion=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | grep tag_name | cut -d '"' -f 4 | sed 's/[^0-9\.]//g')
if [ -z "$appNewVersion" ]; then
printlog "could not retrieve version number for $gitusername/$gitreponame" WARN
appNewVersion=""
@@ -751,7 +750,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
printlog "notifying"
displaynotification "$message" "No update for $name!"
fi
cleanupAndExit 0 "No new version to install" REG
cleanupAndExit 0 "No new version to install" WARN
else
printlog "Using force to install anyway."
fi
@@ -793,7 +792,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
# remove existing application
if [ -e "$targetDir/$appName" ]; then
printlog "Removing existing $targetDir/$appName" WARN
printlog "Removing existing $targetDir/$appName" DEBUG
deleteAppOut=$(rm -Rfv "$targetDir/$appName" 2>&1)
tempName="$targetDir/$appName"
tempNameLength=$((${#tempName} + 10))
@@ -804,21 +803,16 @@ installAppWithPath() { # $1: path to app to install in $targetDir
# copy app to /Applications
printlog "Copy $appPath to $targetDir"
copyAppOut=$(ditto -v "$appPath" "$targetDir/$appName" 2>&1)
copyAppStatus=$(echo $?)
deduplicatelogs "$copyAppOut"
printlog "Debugging enabled, App copy output was:\n$logoutput" DEBUG
if [[ $copyAppStatus -ne 0 ]] ; then
#if ! ditto "$appPath" "$targetDir/$appName"; then
cleanupAndExit 7 "Error while copying:\n$logoutput" ERROR
if ! ditto "$appPath" "$targetDir/$appName"; then
cleanupAndExit 7 "Error while copying" ERROR
fi
# set ownership to current user
if [[ "$currentUser" != "loginwindow" && $SYSTEMOWNER -ne 1 ]]; then
printlog "Changing owner to $currentUser" WARN
printlog "Changing owner to $currentUser"
chown -R "$currentUser" "$targetDir/$appName"
else
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel" WARN
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel"
chown -R root:wheel "$targetDir/$appName"
fi
@@ -916,7 +910,7 @@ installFromPKG() {
printlog "notifying"
displaynotification "$message" "No update for $name!"
fi
cleanupAndExit 0 "No new version to install" REQ
cleanupAndExit 0 "No new version to install" WARN
else
printlog "Using force to install anyway."
fi
@@ -1126,7 +1120,7 @@ finishing() {
message="Installed $name, version $appversion"
fi
printlog "$message" REQ
printlog "$message"
if [[ $currentUser != "loginwindow" && ( $NOTIFY == "success" || $NOTIFY == "all" ) ]]; then
printlog "notifying"
@@ -1170,7 +1164,7 @@ autoload is-at-least
installedOSversion=$(sw_vers -productVersion)
if ! is-at-least 10.14 $installedOSversion; then
printlog "Installomator requires at least macOS 10.14 Mojave." ERROR
printlog "Installomator requires at least macOS 10.14 Mojave."
exit 98
fi
@@ -1191,7 +1185,7 @@ fi
while [[ -n $1 ]]; do
if [[ $1 =~ ".*\=.*" ]]; then
# if an argument contains an = character, send it to eval
printlog "setting variable from argument $1" WARN
printlog "setting variable from argument $1" REQ
eval $1
else
# assume it's a label
@@ -1302,15 +1296,6 @@ valuesfromarguments)
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
#forcefulQuit=YES
;;
1passwordcli)
name="1Password CLI"
type="pkg"
#packageID="com.1password.op"
downloadURL=$(curl -fs https://app-updates.agilebits.com/product_history/CLI | grep -m 1 -i op_apple_universal | cut -d'"' -f 2)
appNewVersion=$(echo $downloadURL | sed -E 's/.*\/[a-zA-Z_]*([0-9.]*)\..*/\1/g')
appCustomVersion(){ /usr/local/bin/op -v }
expectedTeamID="2BUA8C4S2C"
;;
4kvideodownloader)
name="4K Video Downloader"
type="dmg"
@@ -1449,13 +1434,6 @@ amazonchime)
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z.\-]*-([0-9.]*)\..*/\1/g' )
expectedTeamID="94KV3E626L"
;;
amazoncorretto8jdk)
name="Amazon Corretto 8 JDK"
type="pkg"
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
expectedTeamID="94KV3E626L"
;;
amazonworkspaces)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Workspaces"
@@ -1485,10 +1463,10 @@ apparency)
expectedTeamID="936EB786NH"
;;
appcleaner)
# credit: Tadayuki Onishi (@kenchan0130)
name="AppCleaner"
type="zip"
downloadURL=$(curl -fs https://freemacsoft.net/appcleaner/Updates.xml | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | tr " " "\n" | sort | tail -1 | cut -d '"' -f 2)
appNewVersion=$(curl -fsL "https://freemacsoft.net/appcleaner/Updates.xml" | xpath '//rss/channel/item[last()]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2)
downloadURL=$(curl -fs https://freemacsoft.net/appcleaner/Updates.xml | xpath '//rss/channel/*/enclosure/@url' 2>/dev/null | tr " " "\n" | sort | tail -1 | cut -d '"' -f 2)
expectedTeamID="X85ZX835W9"
;;
applenyfonts)
@@ -1586,16 +1564,6 @@ authydesktop)
appNewVersion="$(curl -sfL --output /dev/null -r 0-0 "${downloadURL}" --remote-header-name --remote-name -w "%{url_effective}\n" | grep -o -E '([a-zA-Z0-9\_.%-]*)\.(dmg|pkg|zip|tbz)$' | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')"
expectedTeamID="9EVH78F4V4"
;;
autodeskfusion360admininstall)
name="Autodesk Fusion 360 Admin Install"
type="pkg"
packageID="com.autodesk.edu.fusion360"
downloadURL="https://dl.appstreaming.autodesk.com/production/installers/Autodesk%20Fusion%20360%20Admin%20Install.pkg"
appNewVersion=$(curl -fs "https://dl.appstreaming.autodesk.com/production/97e6dd95735340d6ad6e222a520454db/73e72ada57b7480280f7a6f4a289729f/full.json" | sed -E 's/.*build-version":"([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*/\1/g')
expectedTeamID="XXKJ396S2Y"
appName="Autodesk Fusion 360.app"
blockingProcesses=( "Autodesk Fusion 360" "Fusion 360" )
;;
autodmg)
# credit: Mischa van der Bent (@mischavdbent)
name="AutoDMG"
@@ -1634,20 +1602,6 @@ awsvpnclient)
expectedTeamID="94KV3E626L"
appNewVersion=$(curl -is "https://beta2.communitypatch.com/jamf/v1/ba1efae22ae74a9eb4e915c31fef5dd2/patch/AWSVPNClient" | grep currentVersion | tr ',' '\n' | grep currentVersion | cut -d '"' -f 4)
;;
axurerp10)
name="Axure RP 10"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://d3uii9pxdigrx1.cloudfront.net/AxureRP-Setup-arm64.dmg"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://d3uii9pxdigrx1.cloudfront.net/AxureRP-Setup.dmg"
fi
appNewVersion=$( curl -sL https://www.axure.com/release-history | grep -Eo '[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}' -m 1 )
expectedTeamID="HUMW6UU796"
versionKey="CFBundleVersion"
appName="Axure RP 10.app"
blockingProcesses=( "Axure RP 10" )
;;
balenaetcher)
name="balenaEtcher"
type="dmg"
@@ -1775,13 +1729,6 @@ cakebrew)
appNewVersion=$( curl -fsL "https://www.cakebrew.com/appcast/profileInfo.php" | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2 )
expectedTeamID="R85D3K8ATT"
;;
calcservice)
name="CalcService"
type="zip"
downloadURL="$(curl -fs -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" "https://www.devontechnologies.com/support/download" | tr '"' "\n" | grep -o "http.*download.*.zip" | grep -i calcservice | head -1)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;
calibre)
# credit: Drew Diver (@grumpydrew on MacAdmins Slack)
name="calibre"
@@ -1856,13 +1803,6 @@ clickshare)
downloadURL=https://www.barco.com$(curl -fs "https://www.barco.com/en/clickshare/app" | grep -E -o '(\/\S*Download\?FileNumber=R3306192\S*ShowDownloadPage=False)' | tail -1)
expectedTeamID="P6CDJZR997"
;;
clipy)
name="Clipy"
type="dmg"
downloadURL=$(downloadURLFromGit Clipy Clipy)
appNewVersion=$(versionFromGit Clipy Clipy)
expectedTeamID="BBCHAJ584H"
;;
closeio)
name="Close.io"
type="dmg"
@@ -2009,13 +1949,12 @@ devonthink)
appNewVersion=$( echo ${downloadURL} | tr '/' '\n' | grep "[0-9]" | grep "[.]" | head -1 )
expectedTeamID="679S2QUWR8"
;;
dialog|\
swiftdialog)
dialog)
name="Dialog"
type="pkg"
packageID="au.csiro.dialogcli"
downloadURL="$(downloadURLFromGit bartreardon swiftDialog)"
appNewVersion="$(versionFromGit bartreardon swiftDialog)"
downloadURL="$(downloadURLFromGit bartreardon Dialog)"
appNewVersion="$(versionFromGit bartreardon Dialog)"
expectedTeamID="PWA5E9TQ59"
;;
dialpad)
@@ -2051,15 +1990,6 @@ docker)
fi
expectedTeamID="9BNSXJN65R"
;;
dockutil)
name="dockutil"
type="pkg"
packageID="dockutil.cli.tool"
downloadURL=$(downloadURLFromGit "kcrawford" "dockutil")
appNewVersion=$(versionFromGit "kcrawford" "dockutil")
expectedTeamID="Z5J8CJBUWC"
blockingProcesses=( NONE )
;;
drift)
# credit Elena Ackley (@elenaelago)
name="Drift"
@@ -2081,13 +2011,6 @@ easeusdatarecoverywizard)
#appNewVersion=""
expectedTeamID="DLLVW95FSM"
;;
easyfind)
name="EasyFind"
type="zip"
downloadURL="$(curl -fs "https://www.devontechnologies.com/apps/freeware" | grep -o "http.*download.*.zip" | grep -i easyfind)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;
egnyte)
# credit: #MoeMunyoki from MacAdmins Slack
name="Egnyte Connect"
@@ -2343,8 +2266,15 @@ golang)
googlechrome)
name="Google Chrome"
type="dmg"
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
if [[ $(arch) != "i386" ]]; then
printlog "Architecture: arm64 (not i386)"
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
else
printlog "Architecture: i386"
downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac,stable/{print $3; exit}')
fi
expectedTeamID="EQHXZ8M8AV"
;;
googlechromepkg)
@@ -2423,15 +2353,6 @@ gpgsync)
appNewVersion="$(versionFromGit firstlookmedia gpgsync)"
expectedTeamID="P24U45L8P5"
;;
grammarly)
name="Grammarly Desktop"
type="dmg"
packageID="com.grammarly.ProjectLlama"
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="W8F64X92K3"
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
appName="Grammarly Installer.app"
;;
grandperspective)
name="GrandPerspective"
type="dmg"
@@ -2486,13 +2407,6 @@ hazel)
appNewVersion=$(curl -fsI https://www.noodlesoft.com/Products/Hazel/download | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g')
expectedTeamID="86Z3GCJ4MF"
;;
houdahspot)
name="HoudahSpot"
type="zip"
downloadURL="$(curl -fs https://www.houdah.com/houdahSpot/updates/cast6.php | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
appNewVersion="$(curl -fs https://www.houdah.com/houdahSpot/updates/cast6.php | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
expectedTeamID="DKGQD8H8ZY"
;;
hpeasyadmin)
# credit: Søren Theilgaard (@theilgaard)
name="HP Easy Admin"
@@ -2934,15 +2848,6 @@ lulu)
appNewVersion=$(versionFromGit objective-see LuLu)
expectedTeamID="VBG97UB4TA"
;;
macadminspython)
name="MacAdmins Python"
type="pkg"
packageID="org.macadmins.python.recommended"
downloadURL=$(curl --silent --fail "https://api.github.com/repos/macadmins/python/releases/latest" | awk -F '"' "/browser_download_url/ && /python_recommended_signed/ { print \$4; exit }")
appNewVersion=$(grep -o -E '\d+\.\d+\.\d+\.\d+' <<< $downloadURL | head -n 1)
expectedTeamID="9GQZ7KUFR6"
blockingProcesses=( NONE )
;;
maccyapp)
name="Maccy"
type="zip"
@@ -3039,16 +2944,6 @@ microsoftautoupdate)
#updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
#updateToolArguments=( --install --apps MSau04 )
;;
microsoftazuredatastudio|\
azuredatastudio)
name="Azure Data Studio"
type="zip"
downloadURL=$( curl -sL https://github.com/microsoft/azuredatastudio/releases/latest | grep 'macOS ZIP' | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" )
appNewVersion=$(versionFromGit microsoft azuredatastudio )
expectedTeamID="UBF8T346G9"
appName="Azure Data Studio.app"
blockingProcesses=( "Azure Data Studio" )
;;
microsoftazurestorageexplorer)
name="Microsoft Azure Storage Explorer"
type="zip"
@@ -3071,9 +2966,8 @@ microsoftcompanyportal)
updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
updateToolArguments=( --install --apps IMCP01 )
;;
microsoftdefender|\
microsoftdefenderatp)
name="Microsoft Defender"
name="Microsoft Defender ATP"
type="pkg"
downloadURL="https://go.microsoft.com/fwlink/?linkid=2097502"
appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.defender.standalone"]/version' 2>/dev/null | sed -E 's/<version>([0-9.]*) .*/\1/')
@@ -3423,13 +3317,6 @@ muzzle)
appNewVersion=$(curl -fs https://muzzleapp.com/updates/ | grep -io 'h2.*Version.* [0-9.]*.*h2' | head -1 | sed -E 's/.*ersion *([0-9.]*).*/\1/g')
expectedTeamID="49EYHPJ4Q3"
;;
nanosaur)
name="Nanosaur"
type="dmg"
downloadURL=$(downloadURLFromGit jorio Nanosaur)
appNewVersion=$(versionFromGit jorio Nanosaur)
expectedTeamID="RVNL7XC27G"
;;
netnewswire)
name="NetNewsWire"
type="zip"
@@ -4177,14 +4064,13 @@ superhuman)
expectedTeamID="6XHFYUTQGX"
;;
supportapp)
# credit: Søren Theilgaard (@theilgaard)
name="Support"
type="pkg"
packageID="nl.root3.support"
downloadURL=$(downloadURLFromGit root3nl SupportApp)
appNewVersion=$(versionFromGit root3nl SupportApp)
expectedTeamID="98LJ4XBGYK"
uid=$(id -u "$currentUser")
launchctl bootout gui/${uid} "/Library/LaunchAgents/nl.root3.support.plist"
;;
suspiciouspackage)
# credit: Mischa van der Bent (@mischavdbent)
@@ -4292,13 +4178,6 @@ telegram)
appNewVersion=$( curl -fs https://macos.telegram.org | grep anchor | head -1 | sed -E 's/.*a>([0-9.]*) .*/\1/g' )
expectedTeamID="6N38VWS5BX"
;;
tembo)
name="Tembo"
type="zip"
downloadURL="$(curl -fs https://www.houdah.com/tembo/updates/cast2.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
appNewVersion="$(curl -fs https://www.houdah.com/tembo/updates/cast2.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
expectedTeamID="DKGQD8H8ZY"
;;
textexpander)
name="TextExpander"
type="dmg"
@@ -4574,14 +4453,6 @@ wireshark)
appNewVersion=$(curl -fs https://www.wireshark.org/download.html | grep -i "href.*_stable" | sed -E 's/.*\(([0-9.]*)\).*/\1/g')
expectedTeamID="7Z6EMTD2C6"
;;
wordservice)
name="WordService"
type="zip"
downloadURL="$(curl -fs -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" "https://www.devontechnologies.com/support/download" | tr '"' "\n" | grep -o "http.*download.*.zip" | grep -i wordservice | head -1)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
appNewVersion=""
expectedTeamID="679S2QUWR8"
;;
wwdc)
# credit: Søren Theilgaard (@theilgaard)
name="WWDC"
@@ -4604,14 +4475,6 @@ xink)
appNewVersion=$(curl -fs "https://downloads.xink.io/macos/appcast" | xpath '(//rss/channel/item/enclosure/@sparkle:version)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)
expectedTeamID="F287823HVS"
;;
xmenu)
name="XMenu"
type="zip"
downloadURL="$(curl -fs "https://www.devontechnologies.com/apps/freeware" | grep -o "http.*download.*.zip" | grep -i xmenu)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;
xquartz)
# credit: AP Orlebeke (@apizz)
name="XQuartz"
@@ -4677,7 +4540,6 @@ zoom)
downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg"
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
expectedTeamID="BJ4HAAB9B3"
versionKey="CFBundleVersion"
;;
zoomclient)
name="zoom.us"
@@ -4699,7 +4561,6 @@ zoomgov)
downloadURL="https://www.zoomgov.com/client/latest/ZoomInstallerIT.pkg"
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
expectedTeamID="BJ4HAAB9B3"
versionKey="CFBundleVersion"
;;
zoomrooms)
name="ZoomRooms"
@@ -4832,11 +4693,6 @@ case $LOGO in
LOGO="/Library/Addigy/macmanage/MacManage.app/Contents/Resources/atom.icns"
if [[ -z $MDMProfileName ]]; then; MDMProfileName="MDM Profile"; fi
;;
microsoft)
# Microsoft Endpoint Manager (Intune)
LOGO="/Library/Intune/Microsoft Intune Agent.app/Contents/Resources/AppIcon.icns"
if [[ -z $MDMProfileName ]]; then; MDMProfileName="Management Profile"; fi
;;
esac
if [[ ! -a "${LOGO}" ]]; then
if [[ $(sw_vers -buildVersion) > "19" ]]; then
@@ -4932,7 +4788,7 @@ if [[ -n $appNewVersion ]]; then
printlog "notifying"
displaynotification "$message" "No update for $name!"
fi
cleanupAndExit 0 "No newer version." REQ
cleanupAndExit 0 "No newer version." WARN
fi
else
printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." WARN
@@ -4948,9 +4804,10 @@ if [[ (-n $appversion && -n "$updateTool") || "$type" == "updateronly" ]]; then
if [[ $DEBUG -ne 1 ]]; then
if runUpdateTool; then
finishing
cleanupAndExit 0 "updateTool has run" REQ
cleanupAndExit 0
elif [[ $type == "updateronly" ]];then
cleanupAndExit 0 "type is $type so we end here." REQ
printlog "type is $type so we end here."
cleanupAndExit 0
fi # otherwise continue
else
printlog "DEBUG mode 1 enabled, not running update tool" WARN
@@ -5056,4 +4913,4 @@ esac
finishing
# all done!
cleanupAndExit 0 "All done!" REQ
cleanupAndExit 0

View File

@@ -1,5 +1,4 @@
1password7
1passwordcli
4kvideodownloader
8x8
abstract
@@ -17,7 +16,6 @@ alephone
alfred
alttab
amazonchime
amazoncorretto8jdk
amazonworkspaces
androidfiletransfer
anydesk
@@ -36,14 +34,11 @@ atext
atom
audacity
authydesktop
autodeskfusion360admininstall
autodmg
autopkgr
aviatrix
awscli2
awsvpnclient
axurerp10
azuredatastudio
balenaetcher
balsamiqwireframes
bartender
@@ -60,7 +55,6 @@ brave
bugdom
caffeine
cakebrew
calcservice
calibre
camostudio
camtasia
@@ -70,7 +64,6 @@ cisdem-documentreader
citrixworkspace
clevershare2
clickshare
clipy
closeio
cloudya
code42
@@ -95,11 +88,9 @@ dialpad
discord
diskspace
docker
dockutil
drift
dropbox
easeusdatarecoverywizard
easyfind
egnyte
element
eraseinstall
@@ -139,7 +130,6 @@ googlesoftwareupdate
gotomeeting
gpgsuite
gpgsync
grammarly
grandperspective
grasshopper
gyazo
@@ -147,7 +137,6 @@ gyazogif
hancock
handbrake
hazel
houdahspot
hpeasyadmin
hpeasystart
hyper
@@ -198,7 +187,6 @@ loom
lowprofile
lucifer
lulu
macadminspython
maccyapp
macfuse
macports
@@ -209,10 +197,8 @@ marathoninfinity
mattermost
menumeters
microsoftautoupdate
microsoftazuredatastudio
microsoftazurestorageexplorer
microsoftcompanyportal
microsoftdefender
microsoftdefenderatp
microsoftedge
microsoftedgeconsumerstable
@@ -243,7 +229,6 @@ montereyblocker
mowgliiitsycal
musescore
muzzle
nanosaur
netnewswire
nextcloud
nomad
@@ -350,7 +335,6 @@ sublimetext
superhuman
supportapp
suspiciouspackage
swiftdialog
swiftruntimeforcommandlinetools
sync
tableaudesktop
@@ -364,7 +348,6 @@ teamviewerhost
teamviewerqs
techsmithcapture
telegram
tembo
textexpander
textmate
theunarchiver
@@ -402,11 +385,9 @@ whatsapp
wickrme
wickrpro
wireshark
wordservice
wwdc
xeroxphaser7800
xink
xmenu
xquartz
yed
yubikeymanagerqt

View File

@@ -12,7 +12,7 @@ We have put a lot of work into making it stable and safe, but we cannot - of cou
## Authors
Intallomator was originally inspired by the download scripts from William Smith and Sander Schram, and created by:
Intallomator was original inspired by the download scripts from William Smith and Sander Schram, and created by:
Armin Briegel - @scriptingosx
Later on a few more contributers came on the project:

View File

@@ -3,7 +3,7 @@ autoload is-at-least
installedOSversion=$(sw_vers -productVersion)
if ! is-at-least 10.14 $installedOSversion; then
printlog "Installomator requires at least macOS 10.14 Mojave." ERROR
printlog "Installomator requires at least macOS 10.14 Mojave."
exit 98
fi
@@ -24,7 +24,7 @@ fi
while [[ -n $1 ]]; do
if [[ $1 =~ ".*\=.*" ]]; then
# if an argument contains an = character, send it to eval
printlog "setting variable from argument $1" WARN
printlog "setting variable from argument $1" REQ
eval $1
else
# assume it's a label

View File

@@ -156,10 +156,10 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name
fi
if [ -n "$archiveName" ]; then
downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
| awk -F '"' "/browser_download_url/ && /$archiveName\"/ { print \$4; exit }")
else
downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
| awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
fi
if [ -z "$downloadURL" ]; then
@@ -176,7 +176,7 @@ versionFromGit() {
gitusername=${1?:"no git user name"}
gitreponame=${2?:"no git repo name"}
appNewVersion=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | grep tag_name | cut -d '"' -f 4 | sed 's/[^0-9\.]//g')
appNewVersion=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | grep tag_name | cut -d '"' -f 4 | sed 's/[^0-9\.]//g')
if [ -z "$appNewVersion" ]; then
printlog "could not retrieve version number for $gitusername/$gitreponame" WARN
appNewVersion=""
@@ -242,8 +242,12 @@ getAppVersion() {
# printlog "App(s) found: ${applist}" DEBUG
# applist=$(mdfind "kind:application AND name:$appName" -0 )
fi
if [[ -z applist ]]; then
printlog "No previous app found" INFO
if [[ -z $applist ]]; then
if [[ $SKIP_UNINSTALLED -eq 1 ]]; then
cleanupAndExit 0 "No previous app found, and SKIP_UNINSTALLED=1." REQ
else
printlog "No previous app found" WARN
fi
else
printlog "App(s) found: ${applist}" INFO
fi
@@ -265,7 +269,7 @@ getAppVersion() {
if [[ -d "$installedAppPath"/Contents/_MASReceipt ]];then
printlog "Installed $appName is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace."
if [[ $IGNORE_APP_STORE_APPS == "yes" ]]; then
printlog "Replacing App Store apps, no matter the version"
printlog "Replacing App Store apps, no matter the version" WARN
appversion=0
else
cleanupAndExit 1 "App previously installed from App Store, and we respect that" ERROR
@@ -444,7 +448,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
printlog "notifying"
displaynotification "$message" "No update for $name!"
fi
cleanupAndExit 0 "No new version to install" REG
cleanupAndExit 0 "No new version to install" WARN
else
printlog "Using force to install anyway."
fi
@@ -486,7 +490,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
# remove existing application
if [ -e "$targetDir/$appName" ]; then
printlog "Removing existing $targetDir/$appName" WARN
printlog "Removing existing $targetDir/$appName" DEBUG
deleteAppOut=$(rm -Rfv "$targetDir/$appName" 2>&1)
tempName="$targetDir/$appName"
tempNameLength=$((${#tempName} + 10))
@@ -497,21 +501,16 @@ installAppWithPath() { # $1: path to app to install in $targetDir
# copy app to /Applications
printlog "Copy $appPath to $targetDir"
copyAppOut=$(ditto -v "$appPath" "$targetDir/$appName" 2>&1)
copyAppStatus=$(echo $?)
deduplicatelogs "$copyAppOut"
printlog "Debugging enabled, App copy output was:\n$logoutput" DEBUG
if [[ $copyAppStatus -ne 0 ]] ; then
#if ! ditto "$appPath" "$targetDir/$appName"; then
cleanupAndExit 7 "Error while copying:\n$logoutput" ERROR
if ! ditto "$appPath" "$targetDir/$appName"; then
cleanupAndExit 7 "Error while copying" ERROR
fi
# set ownership to current user
if [[ "$currentUser" != "loginwindow" && $SYSTEMOWNER -ne 1 ]]; then
printlog "Changing owner to $currentUser" WARN
printlog "Changing owner to $currentUser"
chown -R "$currentUser" "$targetDir/$appName"
else
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel" WARN
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel"
chown -R root:wheel "$targetDir/$appName"
fi
@@ -609,7 +608,7 @@ installFromPKG() {
printlog "notifying"
displaynotification "$message" "No update for $name!"
fi
cleanupAndExit 0 "No new version to install" REQ
cleanupAndExit 0 "No new version to install" WARN
else
printlog "Using force to install anyway."
fi
@@ -819,7 +818,7 @@ finishing() {
message="Installed $name, version $appversion"
fi
printlog "$message" REQ
printlog "$message"
if [[ $currentUser != "loginwindow" && ( $NOTIFY == "success" || $NOTIFY == "all" ) ]]; then
printlog "notifying"

View File

@@ -80,7 +80,6 @@ LOGO=appstore
# - mosyleb Mosyle Business
# - mosylem Mosyle Manager (Education)
# - addigy Addigy
# - microsoft Microsoft Endpoint Manager (Intune)
# path can also be set in the command call, and if file exists, it will be used.
# Like 'LOGO="/System/Applications/App\ Store.app/Contents/Resources/AppIcon.icns"'
# (spaces have to be escaped).
@@ -111,6 +110,13 @@ INSTALL=""
# if it is newer/different in version
# - force Install even if its the same version
# skip if app is not currently installed
SKIP_UNINSTALLED=0
# options:
# - 0 Run normally and install the app if other conditions are met.
# - 1 If app is not currently installed we will not install anything.
# This is mostly done in the getAppVersion function, and if it cannot
# locate the app, the script will exit.
# Re-opening of closed app
REOPEN="yes"

View File

@@ -1,9 +0,0 @@
1passwordcli)
name="1Password CLI"
type="pkg"
#packageID="com.1password.op"
downloadURL=$(curl -fs https://app-updates.agilebits.com/product_history/CLI | grep -m 1 -i op_apple_universal | cut -d'"' -f 2)
appNewVersion=$(echo $downloadURL | sed -E 's/.*\/[a-zA-Z_]*([0-9.]*)\..*/\1/g')
appCustomVersion(){ /usr/local/bin/op -v }
expectedTeamID="2BUA8C4S2C"
;;

View File

@@ -1,7 +0,0 @@
amazoncorretto8jdk)
name="Amazon Corretto 8 JDK"
type="pkg"
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
expectedTeamID="94KV3E626L"
;;

View File

@@ -1,7 +1,7 @@
appcleaner)
# credit: Tadayuki Onishi (@kenchan0130)
name="AppCleaner"
type="zip"
downloadURL=$(curl -fs https://freemacsoft.net/appcleaner/Updates.xml | xpath '//rss/channel/item[last()]/enclosure/@url' 2>/dev/null | tr " " "\n" | sort | tail -1 | cut -d '"' -f 2)
appNewVersion=$(curl -fsL "https://freemacsoft.net/appcleaner/Updates.xml" | xpath '//rss/channel/item[last()]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f 2)
downloadURL=$(curl -fs https://freemacsoft.net/appcleaner/Updates.xml | xpath '//rss/channel/*/enclosure/@url' 2>/dev/null | tr " " "\n" | sort | tail -1 | cut -d '"' -f 2)
expectedTeamID="X85ZX835W9"
;;

View File

@@ -1,10 +0,0 @@
autodeskfusion360admininstall)
name="Autodesk Fusion 360 Admin Install"
type="pkg"
packageID="com.autodesk.edu.fusion360"
downloadURL="https://dl.appstreaming.autodesk.com/production/installers/Autodesk%20Fusion%20360%20Admin%20Install.pkg"
appNewVersion=$(curl -fs "https://dl.appstreaming.autodesk.com/production/97e6dd95735340d6ad6e222a520454db/73e72ada57b7480280f7a6f4a289729f/full.json" | sed -E 's/.*build-version":"([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*/\1/g')
expectedTeamID="XXKJ396S2Y"
appName="Autodesk Fusion 360.app"
blockingProcesses=( "Autodesk Fusion 360" "Fusion 360" )
;;

View File

@@ -1,14 +0,0 @@
axurerp10)
name="Axure RP 10"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://d3uii9pxdigrx1.cloudfront.net/AxureRP-Setup-arm64.dmg"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://d3uii9pxdigrx1.cloudfront.net/AxureRP-Setup.dmg"
fi
appNewVersion=$( curl -sL https://www.axure.com/release-history | grep -Eo '[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}' -m 1 )
expectedTeamID="HUMW6UU796"
versionKey="CFBundleVersion"
appName="Axure RP 10.app"
blockingProcesses=( "Axure RP 10" )
;;

View File

@@ -1,7 +0,0 @@
calcservice)
name="CalcService"
type="zip"
downloadURL="$(curl -fs -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" "https://www.devontechnologies.com/support/download" | tr '"' "\n" | grep -o "http.*download.*.zip" | grep -i calcservice | head -1)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;

View File

@@ -1,7 +0,0 @@
clipy)
name="Clipy"
type="dmg"
downloadURL=$(downloadURLFromGit Clipy Clipy)
appNewVersion=$(versionFromGit Clipy Clipy)
expectedTeamID="BBCHAJ584H"
;;

View File

@@ -1,13 +1,7 @@
dbeaverce)
name="DBeaver"
type="dmg"
if [[ $(arch) == "arm64" ]]; then
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos-aarch64.dmg"
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' | head -1)"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos.dmg"
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' | head -1)"
fi
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos.dmg"
expectedTeamID="42B6MDKMW8"
blockingProcesses=( dbeaver )
;;

View File

@@ -1,9 +1,8 @@
dialog|\
swiftdialog)
dialog)
name="Dialog"
type="pkg"
packageID="au.csiro.dialogcli"
downloadURL="$(downloadURLFromGit bartreardon swiftDialog)"
appNewVersion="$(versionFromGit bartreardon swiftDialog)"
downloadURL="$(downloadURLFromGit bartreardon Dialog)"
appNewVersion="$(versionFromGit bartreardon Dialog)"
expectedTeamID="PWA5E9TQ59"
;;

View File

@@ -1,9 +0,0 @@
dockutil)
name="dockutil"
type="pkg"
packageID="dockutil.cli.tool"
downloadURL=$(downloadURLFromGit "kcrawford" "dockutil")
appNewVersion=$(versionFromGit "kcrawford" "dockutil")
expectedTeamID="Z5J8CJBUWC"
blockingProcesses=( NONE )
;;

View File

@@ -1,7 +0,0 @@
easyfind)
name="EasyFind"
type="zip"
downloadURL="$(curl -fs "https://www.devontechnologies.com/apps/freeware" | grep -o "http.*download.*.zip" | grep -i easyfind)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;

View File

@@ -1,9 +0,0 @@
forticlient_ztna)
name="FortiClient ZTNA"
type="pkgInDmg"
pkgName="Install.mpkg"
packageID="com.fortinet.forticlient."
downloadURL="https://links.fortinet.com/forticlient/mac/fabricagent"
appNewVersion="$(curl -fsL "$downloadURL" --remote-header-name --remote-name -w "%{url_effective}\n" -r 0-0 | cut -d "_" -f2)"
expectedTeamID="AH4XFXJ7DK"
;;

View File

@@ -1,7 +1,14 @@
googlechrome)
name="Google Chrome"
type="dmg"
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
if [[ $(arch) != "i386" ]]; then
printlog "Architecture: arm64 (not i386)"
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
else
printlog "Architecture: i386"
downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg"
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac,stable/{print $3; exit}')
fi
expectedTeamID="EQHXZ8M8AV"
;;

View File

@@ -1,9 +0,0 @@
grammarly)
name="Grammarly Desktop"
type="dmg"
packageID="com.grammarly.ProjectLlama"
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
expectedTeamID="W8F64X92K3"
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
appName="Grammarly Installer.app"
;;

View File

@@ -1,7 +0,0 @@
houdahspot)
name="HoudahSpot"
type="zip"
downloadURL="$(curl -fs https://www.houdah.com/houdahSpot/updates/cast6.php | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
appNewVersion="$(curl -fs https://www.houdah.com/houdahSpot/updates/cast6.php | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
expectedTeamID="DKGQD8H8ZY"
;;

View File

@@ -1,9 +0,0 @@
macadminspython)
name="MacAdmins Python"
type="pkg"
packageID="org.macadmins.python.recommended"
downloadURL=$(curl --silent --fail "https://api.github.com/repos/macadmins/python/releases/latest" | awk -F '"' "/browser_download_url/ && /python_recommended_signed/ { print \$4; exit }")
appNewVersion=$(grep -o -E '\d+\.\d+\.\d+\.\d+' <<< $downloadURL | head -n 1)
expectedTeamID="9GQZ7KUFR6"
blockingProcesses=( NONE )
;;

View File

@@ -1,10 +0,0 @@
microsoftazuredatastudio|\
azuredatastudio)
name="Azure Data Studio"
type="zip"
downloadURL=$( curl -sL https://github.com/microsoft/azuredatastudio/releases/latest | grep 'macOS ZIP' | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" )
appNewVersion=$(versionFromGit microsoft azuredatastudio )
expectedTeamID="UBF8T346G9"
appName="Azure Data Studio.app"
blockingProcesses=( "Azure Data Studio" )
;;

View File

@@ -1,6 +1,5 @@
microsoftdefender|\
microsoftdefenderatp)
name="Microsoft Defender"
name="Microsoft Defender ATP"
type="pkg"
downloadURL="https://go.microsoft.com/fwlink/?linkid=2097502"
appNewVersion=$(curl -fs https://macadmins.software/latest.xml | xpath '//latest/package[id="com.microsoft.defender.standalone"]/version' 2>/dev/null | sed -E 's/<version>([0-9.]*) .*/\1/')

View File

@@ -1,9 +0,0 @@
propresenter7)
name="ProPresenter 7"
appName="ProPresenter.app"
type="zip"
blockingProcesses="ProPresenter"
downloadURL=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"downloadUrl":.*?[^\]",' | head -n 1 | cut -d \" -f 4 | sed -e 's/\\//g')
appNewVersion=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"version":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
expectedTeamID="97GAAZ6CPX"
;;

View File

@@ -1,12 +1,8 @@
ringcentralapp)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Ringcentral"
type="pkg"
if [[ $(arch) != "i386" ]]; then
downloadURL="https://app.ringcentral.com/download/RingCentral-arm64.pkg"
else
downloadURL="https://app.ringcentral.com/download/RingCentral.pkg"
fi
name="Glip"
type="dmg"
downloadURL="https://downloads.ringcentral.com/glip/rc/GlipForMac"
expectedTeamID="M932RC5J66"
blockingProcesses=( "Ringcentral" )
blockingProcesses=( "Glip" )
;;

View File

@@ -1,10 +1,9 @@
supportapp)
# credit: Søren Theilgaard (@theilgaard)
name="Support"
type="pkg"
packageID="nl.root3.support"
downloadURL=$(downloadURLFromGit root3nl SupportApp)
appNewVersion=$(versionFromGit root3nl SupportApp)
expectedTeamID="98LJ4XBGYK"
uid=$(id -u "$currentUser")
launchctl bootout gui/${uid} "/Library/LaunchAgents/nl.root3.support.plist"
;;

View File

@@ -1,7 +0,0 @@
tembo)
name="Tembo"
type="zip"
downloadURL="$(curl -fs https://www.houdah.com/tembo/updates/cast2.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
appNewVersion="$(curl -fs https://www.houdah.com/tembo/updates/cast2.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
expectedTeamID="DKGQD8H8ZY"
;;

View File

@@ -1,8 +0,0 @@
wordservice)
name="WordService"
type="zip"
downloadURL="$(curl -fs -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" "https://www.devontechnologies.com/support/download" | tr '"' "\n" | grep -o "http.*download.*.zip" | grep -i wordservice | head -1)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
appNewVersion=""
expectedTeamID="679S2QUWR8"
;;

View File

@@ -1,8 +0,0 @@
xmenu)
name="XMenu"
type="zip"
downloadURL="$(curl -fs "https://www.devontechnologies.com/apps/freeware" | grep -o "http.*download.*.zip" | grep -i xmenu)"
appNewVersion="$(echo $downloadURL | sed -E 's/.*\/([0-9.]*)\/.*/\1/g')"
expectedTeamID="679S2QUWR8"
;;

View File

@@ -4,5 +4,4 @@ zoom)
downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg"
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
expectedTeamID="BJ4HAAB9B3"
versionKey="CFBundleVersion"
;;

View File

@@ -4,5 +4,4 @@ zoomgov)
downloadURL="https://www.zoomgov.com/client/latest/ZoomInstallerIT.pkg"
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
expectedTeamID="BJ4HAAB9B3"
versionKey="CFBundleVersion"
;;

View File

@@ -55,11 +55,6 @@ case $LOGO in
LOGO="/Library/Addigy/macmanage/MacManage.app/Contents/Resources/atom.icns"
if [[ -z $MDMProfileName ]]; then; MDMProfileName="MDM Profile"; fi
;;
microsoft)
# Microsoft Endpoint Manager (Intune)
LOGO="/Library/Intune/Microsoft Intune Agent.app/Contents/Resources/AppIcon.icns"
if [[ -z $MDMProfileName ]]; then; MDMProfileName="Management Profile"; fi
;;
esac
if [[ ! -a "${LOGO}" ]]; then
if [[ $(sw_vers -buildVersion) > "19" ]]; then
@@ -98,6 +93,7 @@ if [ -z "$appName" ]; then
# when not given derive from name
appName="$name.app"
fi
printlog "appName: $appName" INFO
if [ -z "$targetDir" ]; then
case $type in
@@ -155,7 +151,7 @@ if [[ -n $appNewVersion ]]; then
printlog "notifying"
displaynotification "$message" "No update for $name!"
fi
cleanupAndExit 0 "No newer version." REQ
cleanupAndExit 0 "No newer version." WARN
fi
else
printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." WARN
@@ -171,9 +167,10 @@ if [[ (-n $appversion && -n "$updateTool") || "$type" == "updateronly" ]]; then
if [[ $DEBUG -ne 1 ]]; then
if runUpdateTool; then
finishing
cleanupAndExit 0 "updateTool has run" REQ
cleanupAndExit 0
elif [[ $type == "updateronly" ]];then
cleanupAndExit 0 "type is $type so we end here." REQ
printlog "type is $type so we end here."
cleanupAndExit 0
fi # otherwise continue
else
printlog "DEBUG mode 1 enabled, not running update tool" WARN
@@ -279,4 +276,4 @@ esac
finishing
# all done!
cleanupAndExit 0 "All done!" REQ
cleanupAndExit 0

View File

@@ -1 +1 @@
10dev
9.1beta