-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzoom.sh
140 lines (122 loc) · 5.82 KB
/
zoom.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/bin/zsh
#####################################################################################################
#
# ABOUT THIS PROGRAM
#
# NAME
# Zoom Installer Updater.sh -- Installs or updates Zoom
#
# SYNOPSIS
# sudo zoom.sh
#
####################################################################################################
#
# HISTORY
#
# Version: 1.2
#
# - 1.0 Martyn Watts, 28.09.2021 Initial Build
# - 1.1 Martyn Watts, 28.09.2021 Initial Build
# - 1.1.1 Martyn Watts, 28.09.2021 Initial Build
# - 1.2 Martyn Watts, 03.12.2012 Changed the /tmp paths to /Library/Caches/com.purplecomputing.mdm/
#
####################################################################################################
# Script to download and install Zoom.
#
releaseNotesUrl='https://zoom.us/download'
appName='zoom.us'
dnldfile='zoom.pkg'
forceQuit='Y'
logfile="/Library/Caches/com.purplecomputing.mdm/Logs/ZoomInstallScript.log"
deplog="/var/tmp/depnotify.log"
scriptver="1.2"
architecture=$(/usr/bin/arch)
OSvers_URL=$( sw_vers -productVersion | sed 's/[.]/_/g' )
userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X ${OSvers_URL}) AppleWebKit/535.6.2 (KHTML, like Gecko) Version/5.2 Safari/535.6.2"
# Making Purple Cache directories for in the event that the helper script hasn't been run
mkdir -p /Library/Caches/com.purplecomputing.mdm/
mkdir -p /Library/Caches/com.purplecomputing.mdm/Logs/
mkdir -p /Library/Caches/com.purplecomputing.mdm/Apps/
echo "Script Version: ${scriptver}" >> ${logfile}
echo "Status: Installing ${appName}" >> ${deplog}
echo "Status: Installing ${appName}" >> ${logfile}
if [[ $@ == "openconsole" ]]; then
open ${logfile}
open ${deplog}
fi
# To get just the latest version url and number from the download URL
latestver=$(curl -A ${userAgent} ${releaseNotesUrl} | iconv -f windows-1251 | grep -m 1 'Version' | cut -f2 -d' ')
echo "Latest version available is: $latestver"
if [[ $architecture == "arm64" ]]; then
echo "Running Apple Silicon Setting correct URL"
downloadUrl="http://zoom.us/client/latest/Zoom.pkg?archType=arm64"
else
echo "Running Intel Setting correct URL"
downloadUrl="http://zoom.us/client/latest/Zoom.pkg"
fi
# Get the version number of the currently-installed App, if any.
if [[ -e "/Applications/${appName}.app" ]]; then
currentinstalledlongver=`/usr/bin/defaults read "/Applications/${appName}.app/Contents/Info" CFBundleShortVersionString`
currentinstalledver=$(echo $currentinstalledlongver | cut -f1 -d' ')
echo "Current installed version is: $currentinstalledver"
echo "Current installed version is: $currentinstalledver" >> ${logfile}
if [[ $latestver = $currentinstalledver ]]; then
echo "${appName} is current. Exiting"
echo "${appName} is current. Exiting" >> ${logfile}
exit 0
fi
else
currentinstalledver="none"
echo "${appName} is not installed"
echo "${appName} is not installed" >> ${logfile}
fi
# Compare the two versions, if they are different or the App is not present then download and install the new version.
if [[ $currentinstalledver != $latestver ]]; then
/bin/echo "`date`: Current ${appName} version: ${currentinstalledver}" >> ${logfile}
/bin/echo "Current ${appName} version: ${currentinstalledver}"
/bin/echo "`date`: Available ${appName} version: ${latestver}" >> ${logfile}
/bin/echo "Available ${appName} version: ${latestver}"
/bin/echo "`date`: Downloading newer version." >> ${logfile}
/bin/echo "Downloading newer version."
url=$(curl -Ls -o /dev/null -w %{url_effective} ${downloadUrl})
/usr/bin/curl -o "/Library/Caches/com.purplecomputing.mdm/Apps/${dnldfile}" ${url}
/bin/echo "`date`: Force quitting ${appName} if running." >> ${logfile}
/bin/echo "Force quitting ${appName} if running."
if [[ "${forceQuit}" = "Y" ]]; then
killall ${appName}
fi
cd /Library/Caches/com.purplecomputing.mdm/Apps/
/usr/sbin/installer -pkg $dnldfile -target /
/bin/sleep 5
/bin/echo "`date`: Deleting the downloaded file." >> ${logfile}
/bin/echo "Deleting the downloaded file."
/bin/rm /Library/Caches/com.purplecomputing.mdm/Apps/${dnldfile}
#double check to see if the new version got updated
newlyinstalledlongver=`/usr/bin/defaults read "/Applications/${appName}.app/Contents/Info" CFBundleShortVersionString`
newlyinstalledver=$(echo ${newlyinstalledlongver} | cut -f1 -d' ')
echo "Current installed version is: $currentinstalledver"
if [[ $latestver == $newlyinstalledver ]]; then
/bin/echo "`date`: SUCCESS: ${appName} has been updated to version ${newlyinstalledver}" >> ${logfile}
/bin/echo "SUCCESS: ${appName} has been updated to version ${newlyinstalledver}"
if [[ -e "/usr/local/bin/dockutil" ]]; then
/bin/echo "`date`: Creating Dock Icon." >> ${logfile}
/usr/local/bin/dockutil --remove "${appName}" --allhomes
/bin/sleep 3
/usr/local/bin/dockutil --add "/Applications/${appName}.app" --after 'Messages' --allhomes
fi
/bin/echo "--" >> ${logfile}
else
/bin/echo "`date`: ERROR: ${appName} update unsuccessful, version remains at ${currentinstalledver}." >> ${logfile}
/bin/echo "ERROR: ${appName} update unsuccessful, version remains at ${currentinstalledver}."
/bin/echo "--" >> ${logfile}
exit 1
fi
# If App is up to date already, just log it and exit.
else
/bin/echo "`date`: ${appName} is already up to date, running ${currentinstalledver}." >> ${logfile}
/bin/echo "`date`: ${appName} is already up to date, running ${currentinstalledver}."
/bin/echo "--" >> ${logfile}
fi
echo "Command: DeterminateManualStep: 1" >> ${deplog}
sleep 5s
killall ${appName}