mirror of
https://github.com/mtan93/Installomator.git
synced 2026-03-08 05:31:53 +00:00
preparing v9.1 release
This commit is contained in:
32
CHANGELOG.md
32
CHANGELOG.md
@@ -1,6 +1,36 @@
|
|||||||
## v9.1
|
## v9.1
|
||||||
|
|
||||||
- new labels: amazoncorretto8jdk (#423)
|
**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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## v9.0.1
|
## v9.0.1
|
||||||
|
|
||||||
|
|||||||
205
Installomator.sh
205
Installomator.sh
@@ -301,8 +301,8 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then
|
|||||||
rosetta2=no
|
rosetta2=no
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
VERSION="9.0.1"
|
VERSION="9.1"
|
||||||
VERSIONDATE="2022-02-20"
|
VERSIONDATE="2022-03-18"
|
||||||
|
|
||||||
# MARK: Functions
|
# MARK: Functions
|
||||||
|
|
||||||
@@ -462,10 +462,10 @@ downloadURLFromGit() { # $1 git user name, $2 git repo name
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$archiveName" ]; then
|
if [ -n "$archiveName" ]; then
|
||||||
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
|
downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
|
||||||
| awk -F '"' "/browser_download_url/ && /$archiveName\"/ { print \$4; exit }")
|
| awk -F '"' "/browser_download_url/ && /$archiveName\"/ { print \$4; exit }")
|
||||||
else
|
else
|
||||||
downloadURL=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
|
downloadURL=$(curl -L --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" \
|
||||||
| awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
| awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
fi
|
fi
|
||||||
if [ -z "$downloadURL" ]; then
|
if [ -z "$downloadURL" ]; then
|
||||||
@@ -482,7 +482,7 @@ versionFromGit() {
|
|||||||
gitusername=${1?:"no git user name"}
|
gitusername=${1?:"no git user name"}
|
||||||
gitreponame=${2?:"no git repo name"}
|
gitreponame=${2?:"no git repo name"}
|
||||||
|
|
||||||
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')
|
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')
|
||||||
if [ -z "$appNewVersion" ]; then
|
if [ -z "$appNewVersion" ]; then
|
||||||
printlog "could not retrieve version number for $gitusername/$gitreponame" WARN
|
printlog "could not retrieve version number for $gitusername/$gitreponame" WARN
|
||||||
appNewVersion=""
|
appNewVersion=""
|
||||||
@@ -750,7 +750,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
|
|||||||
printlog "notifying"
|
printlog "notifying"
|
||||||
displaynotification "$message" "No update for $name!"
|
displaynotification "$message" "No update for $name!"
|
||||||
fi
|
fi
|
||||||
cleanupAndExit 0 "No new version to install" WARN
|
cleanupAndExit 0 "No new version to install" REG
|
||||||
else
|
else
|
||||||
printlog "Using force to install anyway."
|
printlog "Using force to install anyway."
|
||||||
fi
|
fi
|
||||||
@@ -792,7 +792,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir
|
|||||||
|
|
||||||
# remove existing application
|
# remove existing application
|
||||||
if [ -e "$targetDir/$appName" ]; then
|
if [ -e "$targetDir/$appName" ]; then
|
||||||
printlog "Removing existing $targetDir/$appName" DEBUG
|
printlog "Removing existing $targetDir/$appName" WARN
|
||||||
deleteAppOut=$(rm -Rfv "$targetDir/$appName" 2>&1)
|
deleteAppOut=$(rm -Rfv "$targetDir/$appName" 2>&1)
|
||||||
tempName="$targetDir/$appName"
|
tempName="$targetDir/$appName"
|
||||||
tempNameLength=$((${#tempName} + 10))
|
tempNameLength=$((${#tempName} + 10))
|
||||||
@@ -803,16 +803,21 @@ installAppWithPath() { # $1: path to app to install in $targetDir
|
|||||||
|
|
||||||
# copy app to /Applications
|
# copy app to /Applications
|
||||||
printlog "Copy $appPath to $targetDir"
|
printlog "Copy $appPath to $targetDir"
|
||||||
if ! ditto "$appPath" "$targetDir/$appName"; then
|
copyAppOut=$(ditto -v "$appPath" "$targetDir/$appName" 2>&1)
|
||||||
cleanupAndExit 7 "Error while copying" ERROR
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set ownership to current user
|
# set ownership to current user
|
||||||
if [[ "$currentUser" != "loginwindow" && $SYSTEMOWNER -ne 1 ]]; then
|
if [[ "$currentUser" != "loginwindow" && $SYSTEMOWNER -ne 1 ]]; then
|
||||||
printlog "Changing owner to $currentUser"
|
printlog "Changing owner to $currentUser" WARN
|
||||||
chown -R "$currentUser" "$targetDir/$appName"
|
chown -R "$currentUser" "$targetDir/$appName"
|
||||||
else
|
else
|
||||||
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel"
|
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel" WARN
|
||||||
chown -R root:wheel "$targetDir/$appName"
|
chown -R root:wheel "$targetDir/$appName"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -910,7 +915,7 @@ installFromPKG() {
|
|||||||
printlog "notifying"
|
printlog "notifying"
|
||||||
displaynotification "$message" "No update for $name!"
|
displaynotification "$message" "No update for $name!"
|
||||||
fi
|
fi
|
||||||
cleanupAndExit 0 "No new version to install" WARN
|
cleanupAndExit 0 "No new version to install" REQ
|
||||||
else
|
else
|
||||||
printlog "Using force to install anyway."
|
printlog "Using force to install anyway."
|
||||||
fi
|
fi
|
||||||
@@ -1120,7 +1125,7 @@ finishing() {
|
|||||||
message="Installed $name, version $appversion"
|
message="Installed $name, version $appversion"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printlog "$message"
|
printlog "$message" REQ
|
||||||
|
|
||||||
if [[ $currentUser != "loginwindow" && ( $NOTIFY == "success" || $NOTIFY == "all" ) ]]; then
|
if [[ $currentUser != "loginwindow" && ( $NOTIFY == "success" || $NOTIFY == "all" ) ]]; then
|
||||||
printlog "notifying"
|
printlog "notifying"
|
||||||
@@ -1164,7 +1169,7 @@ autoload is-at-least
|
|||||||
|
|
||||||
installedOSversion=$(sw_vers -productVersion)
|
installedOSversion=$(sw_vers -productVersion)
|
||||||
if ! is-at-least 10.14 $installedOSversion; then
|
if ! is-at-least 10.14 $installedOSversion; then
|
||||||
printlog "Installomator requires at least macOS 10.14 Mojave."
|
printlog "Installomator requires at least macOS 10.14 Mojave." ERROR
|
||||||
exit 98
|
exit 98
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1185,7 +1190,7 @@ fi
|
|||||||
while [[ -n $1 ]]; do
|
while [[ -n $1 ]]; do
|
||||||
if [[ $1 =~ ".*\=.*" ]]; then
|
if [[ $1 =~ ".*\=.*" ]]; then
|
||||||
# if an argument contains an = character, send it to eval
|
# if an argument contains an = character, send it to eval
|
||||||
printlog "setting variable from argument $1" REQ
|
printlog "setting variable from argument $1" WARN
|
||||||
eval $1
|
eval $1
|
||||||
else
|
else
|
||||||
# assume it's a label
|
# assume it's a label
|
||||||
@@ -1296,6 +1301,15 @@ valuesfromarguments)
|
|||||||
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
|
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
|
||||||
#forcefulQuit=YES
|
#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)
|
4kvideodownloader)
|
||||||
name="4K Video Downloader"
|
name="4K Video Downloader"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -1434,6 +1448,13 @@ amazonchime)
|
|||||||
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z.\-]*-([0-9.]*)\..*/\1/g' )
|
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z.\-]*-([0-9.]*)\..*/\1/g' )
|
||||||
expectedTeamID="94KV3E626L"
|
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)
|
amazonworkspaces)
|
||||||
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
|
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
|
||||||
name="Workspaces"
|
name="Workspaces"
|
||||||
@@ -1463,10 +1484,10 @@ apparency)
|
|||||||
expectedTeamID="936EB786NH"
|
expectedTeamID="936EB786NH"
|
||||||
;;
|
;;
|
||||||
appcleaner)
|
appcleaner)
|
||||||
# credit: Tadayuki Onishi (@kenchan0130)
|
|
||||||
name="AppCleaner"
|
name="AppCleaner"
|
||||||
type="zip"
|
type="zip"
|
||||||
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)
|
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)
|
||||||
expectedTeamID="X85ZX835W9"
|
expectedTeamID="X85ZX835W9"
|
||||||
;;
|
;;
|
||||||
applenyfonts)
|
applenyfonts)
|
||||||
@@ -1564,6 +1585,16 @@ 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')"
|
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"
|
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)
|
autodmg)
|
||||||
# credit: Mischa van der Bent (@mischavdbent)
|
# credit: Mischa van der Bent (@mischavdbent)
|
||||||
name="AutoDMG"
|
name="AutoDMG"
|
||||||
@@ -1602,6 +1633,20 @@ awsvpnclient)
|
|||||||
expectedTeamID="94KV3E626L"
|
expectedTeamID="94KV3E626L"
|
||||||
appNewVersion=$(curl -is "https://beta2.communitypatch.com/jamf/v1/ba1efae22ae74a9eb4e915c31fef5dd2/patch/AWSVPNClient" | grep currentVersion | tr ',' '\n' | grep currentVersion | cut -d '"' -f 4)
|
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)
|
balenaetcher)
|
||||||
name="balenaEtcher"
|
name="balenaEtcher"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -1729,6 +1774,13 @@ 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 )
|
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"
|
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)
|
calibre)
|
||||||
# credit: Drew Diver (@grumpydrew on MacAdmins Slack)
|
# credit: Drew Diver (@grumpydrew on MacAdmins Slack)
|
||||||
name="calibre"
|
name="calibre"
|
||||||
@@ -1803,6 +1855,13 @@ clickshare)
|
|||||||
downloadURL=https://www.barco.com$(curl -fs "https://www.barco.com/en/clickshare/app" | grep -E -o '(\/\S*Download\?FileNumber=R3306192\S*ShowDownloadPage=False)' | tail -1)
|
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"
|
expectedTeamID="P6CDJZR997"
|
||||||
;;
|
;;
|
||||||
|
clipy)
|
||||||
|
name="Clipy"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(downloadURLFromGit Clipy Clipy)
|
||||||
|
appNewVersion=$(versionFromGit Clipy Clipy)
|
||||||
|
expectedTeamID="BBCHAJ584H"
|
||||||
|
;;
|
||||||
closeio)
|
closeio)
|
||||||
name="Close.io"
|
name="Close.io"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -1949,12 +2008,13 @@ devonthink)
|
|||||||
appNewVersion=$( echo ${downloadURL} | tr '/' '\n' | grep "[0-9]" | grep "[.]" | head -1 )
|
appNewVersion=$( echo ${downloadURL} | tr '/' '\n' | grep "[0-9]" | grep "[.]" | head -1 )
|
||||||
expectedTeamID="679S2QUWR8"
|
expectedTeamID="679S2QUWR8"
|
||||||
;;
|
;;
|
||||||
dialog)
|
dialog|\
|
||||||
|
swiftdialog)
|
||||||
name="Dialog"
|
name="Dialog"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
packageID="au.csiro.dialogcli"
|
packageID="au.csiro.dialogcli"
|
||||||
downloadURL="$(downloadURLFromGit bartreardon Dialog)"
|
downloadURL="$(downloadURLFromGit bartreardon swiftDialog)"
|
||||||
appNewVersion="$(versionFromGit bartreardon Dialog)"
|
appNewVersion="$(versionFromGit bartreardon swiftDialog)"
|
||||||
expectedTeamID="PWA5E9TQ59"
|
expectedTeamID="PWA5E9TQ59"
|
||||||
;;
|
;;
|
||||||
dialpad)
|
dialpad)
|
||||||
@@ -1990,6 +2050,15 @@ docker)
|
|||||||
fi
|
fi
|
||||||
expectedTeamID="9BNSXJN65R"
|
expectedTeamID="9BNSXJN65R"
|
||||||
;;
|
;;
|
||||||
|
dockutil)
|
||||||
|
name="dockutil"
|
||||||
|
type="pkg"
|
||||||
|
packageID="dockutil.cli.tool"
|
||||||
|
downloadURL=$(downloadURLFromGit "kcrawford" "dockutil")
|
||||||
|
appNewVersion=$(versionFromGit "kcrawford" "dockutil")
|
||||||
|
expectedTeamID="Z5J8CJBUWC"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
drift)
|
drift)
|
||||||
# credit Elena Ackley (@elenaelago)
|
# credit Elena Ackley (@elenaelago)
|
||||||
name="Drift"
|
name="Drift"
|
||||||
@@ -2011,6 +2080,13 @@ easeusdatarecoverywizard)
|
|||||||
#appNewVersion=""
|
#appNewVersion=""
|
||||||
expectedTeamID="DLLVW95FSM"
|
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)
|
egnyte)
|
||||||
# credit: #MoeMunyoki from MacAdmins Slack
|
# credit: #MoeMunyoki from MacAdmins Slack
|
||||||
name="Egnyte Connect"
|
name="Egnyte Connect"
|
||||||
@@ -2266,15 +2342,8 @@ golang)
|
|||||||
googlechrome)
|
googlechrome)
|
||||||
name="Google Chrome"
|
name="Google Chrome"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
if [[ $(arch) != "i386" ]]; then
|
|
||||||
printlog "Architecture: arm64 (not i386)"
|
|
||||||
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.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}')
|
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"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
;;
|
;;
|
||||||
googlechromepkg)
|
googlechromepkg)
|
||||||
@@ -2353,6 +2422,15 @@ gpgsync)
|
|||||||
appNewVersion="$(versionFromGit firstlookmedia gpgsync)"
|
appNewVersion="$(versionFromGit firstlookmedia gpgsync)"
|
||||||
expectedTeamID="P24U45L8P5"
|
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)
|
grandperspective)
|
||||||
name="GrandPerspective"
|
name="GrandPerspective"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -2407,6 +2485,13 @@ 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')
|
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"
|
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)
|
hpeasyadmin)
|
||||||
# credit: Søren Theilgaard (@theilgaard)
|
# credit: Søren Theilgaard (@theilgaard)
|
||||||
name="HP Easy Admin"
|
name="HP Easy Admin"
|
||||||
@@ -2848,6 +2933,15 @@ lulu)
|
|||||||
appNewVersion=$(versionFromGit objective-see LuLu)
|
appNewVersion=$(versionFromGit objective-see LuLu)
|
||||||
expectedTeamID="VBG97UB4TA"
|
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)
|
maccyapp)
|
||||||
name="Maccy"
|
name="Maccy"
|
||||||
type="zip"
|
type="zip"
|
||||||
@@ -2944,6 +3038,16 @@ microsoftautoupdate)
|
|||||||
#updateTool="/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 --apps MSau04 )
|
#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)
|
microsoftazurestorageexplorer)
|
||||||
name="Microsoft Azure Storage Explorer"
|
name="Microsoft Azure Storage Explorer"
|
||||||
type="zip"
|
type="zip"
|
||||||
@@ -2966,8 +3070,9 @@ microsoftcompanyportal)
|
|||||||
updateTool="/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 --apps IMCP01 )
|
updateToolArguments=( --install --apps IMCP01 )
|
||||||
;;
|
;;
|
||||||
|
microsoftdefender|\
|
||||||
microsoftdefenderatp)
|
microsoftdefenderatp)
|
||||||
name="Microsoft Defender ATP"
|
name="Microsoft Defender"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
downloadURL="https://go.microsoft.com/fwlink/?linkid=2097502"
|
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/')
|
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/')
|
||||||
@@ -3317,6 +3422,13 @@ 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')
|
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"
|
expectedTeamID="49EYHPJ4Q3"
|
||||||
;;
|
;;
|
||||||
|
nanosaur)
|
||||||
|
name="Nanosaur"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(downloadURLFromGit jorio Nanosaur)
|
||||||
|
appNewVersion=$(versionFromGit jorio Nanosaur)
|
||||||
|
expectedTeamID="RVNL7XC27G"
|
||||||
|
;;
|
||||||
netnewswire)
|
netnewswire)
|
||||||
name="NetNewsWire"
|
name="NetNewsWire"
|
||||||
type="zip"
|
type="zip"
|
||||||
@@ -4064,13 +4176,14 @@ superhuman)
|
|||||||
expectedTeamID="6XHFYUTQGX"
|
expectedTeamID="6XHFYUTQGX"
|
||||||
;;
|
;;
|
||||||
supportapp)
|
supportapp)
|
||||||
# credit: Søren Theilgaard (@theilgaard)
|
|
||||||
name="Support"
|
name="Support"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
packageID="nl.root3.support"
|
packageID="nl.root3.support"
|
||||||
downloadURL=$(downloadURLFromGit root3nl SupportApp)
|
downloadURL=$(downloadURLFromGit root3nl SupportApp)
|
||||||
appNewVersion=$(versionFromGit root3nl SupportApp)
|
appNewVersion=$(versionFromGit root3nl SupportApp)
|
||||||
expectedTeamID="98LJ4XBGYK"
|
expectedTeamID="98LJ4XBGYK"
|
||||||
|
uid=$(id -u "$currentUser")
|
||||||
|
launchctl bootout gui/${uid} "/Library/LaunchAgents/nl.root3.support.plist"
|
||||||
;;
|
;;
|
||||||
suspiciouspackage)
|
suspiciouspackage)
|
||||||
# credit: Mischa van der Bent (@mischavdbent)
|
# credit: Mischa van der Bent (@mischavdbent)
|
||||||
@@ -4178,6 +4291,13 @@ telegram)
|
|||||||
appNewVersion=$( curl -fs https://macos.telegram.org | grep anchor | head -1 | sed -E 's/.*a>([0-9.]*) .*/\1/g' )
|
appNewVersion=$( curl -fs https://macos.telegram.org | grep anchor | head -1 | sed -E 's/.*a>([0-9.]*) .*/\1/g' )
|
||||||
expectedTeamID="6N38VWS5BX"
|
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)
|
textexpander)
|
||||||
name="TextExpander"
|
name="TextExpander"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -4453,6 +4573,14 @@ wireshark)
|
|||||||
appNewVersion=$(curl -fs https://www.wireshark.org/download.html | grep -i "href.*_stable" | sed -E 's/.*\(([0-9.]*)\).*/\1/g')
|
appNewVersion=$(curl -fs https://www.wireshark.org/download.html | grep -i "href.*_stable" | sed -E 's/.*\(([0-9.]*)\).*/\1/g')
|
||||||
expectedTeamID="7Z6EMTD2C6"
|
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)
|
wwdc)
|
||||||
# credit: Søren Theilgaard (@theilgaard)
|
# credit: Søren Theilgaard (@theilgaard)
|
||||||
name="WWDC"
|
name="WWDC"
|
||||||
@@ -4475,6 +4603,14 @@ 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)
|
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"
|
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)
|
xquartz)
|
||||||
# credit: AP Orlebeke (@apizz)
|
# credit: AP Orlebeke (@apizz)
|
||||||
name="XQuartz"
|
name="XQuartz"
|
||||||
@@ -4540,6 +4676,7 @@ zoom)
|
|||||||
downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg"
|
downloadURL="https://zoom.us/client/latest/ZoomInstallerIT.pkg"
|
||||||
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
|
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
|
||||||
expectedTeamID="BJ4HAAB9B3"
|
expectedTeamID="BJ4HAAB9B3"
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
;;
|
;;
|
||||||
zoomclient)
|
zoomclient)
|
||||||
name="zoom.us"
|
name="zoom.us"
|
||||||
@@ -4561,6 +4698,7 @@ zoomgov)
|
|||||||
downloadURL="https://www.zoomgov.com/client/latest/ZoomInstallerIT.pkg"
|
downloadURL="https://www.zoomgov.com/client/latest/ZoomInstallerIT.pkg"
|
||||||
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
|
appNewVersion="$(curl -fsIL ${downloadURL} | grep -i ^location | cut -d "/" -f5)"
|
||||||
expectedTeamID="BJ4HAAB9B3"
|
expectedTeamID="BJ4HAAB9B3"
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
;;
|
;;
|
||||||
zoomrooms)
|
zoomrooms)
|
||||||
name="ZoomRooms"
|
name="ZoomRooms"
|
||||||
@@ -4788,7 +4926,7 @@ if [[ -n $appNewVersion ]]; then
|
|||||||
printlog "notifying"
|
printlog "notifying"
|
||||||
displaynotification "$message" "No update for $name!"
|
displaynotification "$message" "No update for $name!"
|
||||||
fi
|
fi
|
||||||
cleanupAndExit 0 "No newer version." WARN
|
cleanupAndExit 0 "No newer version." REQ
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." WARN
|
printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." WARN
|
||||||
@@ -4804,10 +4942,9 @@ if [[ (-n $appversion && -n "$updateTool") || "$type" == "updateronly" ]]; then
|
|||||||
if [[ $DEBUG -ne 1 ]]; then
|
if [[ $DEBUG -ne 1 ]]; then
|
||||||
if runUpdateTool; then
|
if runUpdateTool; then
|
||||||
finishing
|
finishing
|
||||||
cleanupAndExit 0
|
cleanupAndExit 0 "updateTool has run" REQ
|
||||||
elif [[ $type == "updateronly" ]];then
|
elif [[ $type == "updateronly" ]];then
|
||||||
printlog "type is $type so we end here."
|
cleanupAndExit 0 "type is $type so we end here." REQ
|
||||||
cleanupAndExit 0
|
|
||||||
fi # otherwise continue
|
fi # otherwise continue
|
||||||
else
|
else
|
||||||
printlog "DEBUG mode 1 enabled, not running update tool" WARN
|
printlog "DEBUG mode 1 enabled, not running update tool" WARN
|
||||||
@@ -4913,4 +5050,4 @@ esac
|
|||||||
finishing
|
finishing
|
||||||
|
|
||||||
# all done!
|
# all done!
|
||||||
cleanupAndExit 0
|
cleanupAndExit 0 "All done!" REQ
|
||||||
|
|||||||
19
Labels.txt
19
Labels.txt
@@ -1,4 +1,5 @@
|
|||||||
1password7
|
1password7
|
||||||
|
1passwordcli
|
||||||
4kvideodownloader
|
4kvideodownloader
|
||||||
8x8
|
8x8
|
||||||
abstract
|
abstract
|
||||||
@@ -16,6 +17,7 @@ alephone
|
|||||||
alfred
|
alfred
|
||||||
alttab
|
alttab
|
||||||
amazonchime
|
amazonchime
|
||||||
|
amazoncorretto8jdk
|
||||||
amazonworkspaces
|
amazonworkspaces
|
||||||
androidfiletransfer
|
androidfiletransfer
|
||||||
anydesk
|
anydesk
|
||||||
@@ -34,11 +36,14 @@ atext
|
|||||||
atom
|
atom
|
||||||
audacity
|
audacity
|
||||||
authydesktop
|
authydesktop
|
||||||
|
autodeskfusion360admininstall
|
||||||
autodmg
|
autodmg
|
||||||
autopkgr
|
autopkgr
|
||||||
aviatrix
|
aviatrix
|
||||||
awscli2
|
awscli2
|
||||||
awsvpnclient
|
awsvpnclient
|
||||||
|
axurerp10
|
||||||
|
azuredatastudio
|
||||||
balenaetcher
|
balenaetcher
|
||||||
balsamiqwireframes
|
balsamiqwireframes
|
||||||
bartender
|
bartender
|
||||||
@@ -55,6 +60,7 @@ brave
|
|||||||
bugdom
|
bugdom
|
||||||
caffeine
|
caffeine
|
||||||
cakebrew
|
cakebrew
|
||||||
|
calcservice
|
||||||
calibre
|
calibre
|
||||||
camostudio
|
camostudio
|
||||||
camtasia
|
camtasia
|
||||||
@@ -64,6 +70,7 @@ cisdem-documentreader
|
|||||||
citrixworkspace
|
citrixworkspace
|
||||||
clevershare2
|
clevershare2
|
||||||
clickshare
|
clickshare
|
||||||
|
clipy
|
||||||
closeio
|
closeio
|
||||||
cloudya
|
cloudya
|
||||||
code42
|
code42
|
||||||
@@ -88,9 +95,11 @@ dialpad
|
|||||||
discord
|
discord
|
||||||
diskspace
|
diskspace
|
||||||
docker
|
docker
|
||||||
|
dockutil
|
||||||
drift
|
drift
|
||||||
dropbox
|
dropbox
|
||||||
easeusdatarecoverywizard
|
easeusdatarecoverywizard
|
||||||
|
easyfind
|
||||||
egnyte
|
egnyte
|
||||||
element
|
element
|
||||||
eraseinstall
|
eraseinstall
|
||||||
@@ -130,6 +139,7 @@ googlesoftwareupdate
|
|||||||
gotomeeting
|
gotomeeting
|
||||||
gpgsuite
|
gpgsuite
|
||||||
gpgsync
|
gpgsync
|
||||||
|
grammarly
|
||||||
grandperspective
|
grandperspective
|
||||||
grasshopper
|
grasshopper
|
||||||
gyazo
|
gyazo
|
||||||
@@ -137,6 +147,7 @@ gyazogif
|
|||||||
hancock
|
hancock
|
||||||
handbrake
|
handbrake
|
||||||
hazel
|
hazel
|
||||||
|
houdahspot
|
||||||
hpeasyadmin
|
hpeasyadmin
|
||||||
hpeasystart
|
hpeasystart
|
||||||
hyper
|
hyper
|
||||||
@@ -187,6 +198,7 @@ loom
|
|||||||
lowprofile
|
lowprofile
|
||||||
lucifer
|
lucifer
|
||||||
lulu
|
lulu
|
||||||
|
macadminspython
|
||||||
maccyapp
|
maccyapp
|
||||||
macfuse
|
macfuse
|
||||||
macports
|
macports
|
||||||
@@ -197,8 +209,10 @@ marathoninfinity
|
|||||||
mattermost
|
mattermost
|
||||||
menumeters
|
menumeters
|
||||||
microsoftautoupdate
|
microsoftautoupdate
|
||||||
|
microsoftazuredatastudio
|
||||||
microsoftazurestorageexplorer
|
microsoftazurestorageexplorer
|
||||||
microsoftcompanyportal
|
microsoftcompanyportal
|
||||||
|
microsoftdefender
|
||||||
microsoftdefenderatp
|
microsoftdefenderatp
|
||||||
microsoftedge
|
microsoftedge
|
||||||
microsoftedgeconsumerstable
|
microsoftedgeconsumerstable
|
||||||
@@ -229,6 +243,7 @@ montereyblocker
|
|||||||
mowgliiitsycal
|
mowgliiitsycal
|
||||||
musescore
|
musescore
|
||||||
muzzle
|
muzzle
|
||||||
|
nanosaur
|
||||||
netnewswire
|
netnewswire
|
||||||
nextcloud
|
nextcloud
|
||||||
nomad
|
nomad
|
||||||
@@ -335,6 +350,7 @@ sublimetext
|
|||||||
superhuman
|
superhuman
|
||||||
supportapp
|
supportapp
|
||||||
suspiciouspackage
|
suspiciouspackage
|
||||||
|
swiftdialog
|
||||||
swiftruntimeforcommandlinetools
|
swiftruntimeforcommandlinetools
|
||||||
sync
|
sync
|
||||||
tableaudesktop
|
tableaudesktop
|
||||||
@@ -348,6 +364,7 @@ teamviewerhost
|
|||||||
teamviewerqs
|
teamviewerqs
|
||||||
techsmithcapture
|
techsmithcapture
|
||||||
telegram
|
telegram
|
||||||
|
tembo
|
||||||
textexpander
|
textexpander
|
||||||
textmate
|
textmate
|
||||||
theunarchiver
|
theunarchiver
|
||||||
@@ -385,9 +402,11 @@ whatsapp
|
|||||||
wickrme
|
wickrme
|
||||||
wickrpro
|
wickrpro
|
||||||
wireshark
|
wireshark
|
||||||
|
wordservice
|
||||||
wwdc
|
wwdc
|
||||||
xeroxphaser7800
|
xeroxphaser7800
|
||||||
xink
|
xink
|
||||||
|
xmenu
|
||||||
xquartz
|
xquartz
|
||||||
yed
|
yed
|
||||||
yubikeymanagerqt
|
yubikeymanagerqt
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
9.1beta
|
9.1
|
||||||
|
|||||||
Reference in New Issue
Block a user