-
Notifications
You must be signed in to change notification settings - Fork 0
/
google-chrome.sh
executable file
·137 lines (122 loc) · 6.26 KB
/
google-chrome.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
#!/bin/sh
#####################################################################################################
#
# ABOUT THIS PROGRAM
#
# NAME
# Install or update to the latest version - Google Chrome -- Installs or updates Google Chrome
#
# SYNOPSIS
# sudo Install or update to the latest version - Google Chrome
#
####################################################################################################
#
# HISTORY
#
# Version: 1.6
#
# - 1.0 Martyn Watts, 01.07.2021 Initial Build
# - 1.1-m Michael Tanner, 18.08.2021 Adapted for Mosyle
# - 1.2 Martyn Watts, 24.09.2021 Added Check to see if dockutil is installed to make the script more resilient
# - 1.3 Martyn Watts, 28.09.2021 Added Open Console Parameter to use with TeamViewer
# - 1.4 Martyn Watts, 29.09.2021 Added scriptver variable and corrected log opening
# - 1.5 Michael Tanner, 06.11.2021
# - 1.6 Martyn Watts, 03.12.2012 Changed the /tmp paths to /Library/Caches/com.purplecomputing.mdm/
#
####################################################################################################
# Script to download and install Google Chrome.
#
# Unable to find a reliable web source of the latest version number
# We'll need to download the latest version and extract the version number from the pkg file
url='https://dl.google.com/chrome/mac/stable/gcem/GoogleChrome.pkg'
dnldfile='GoogleChrome.pkg'
appName='Google Chrome'
forceQuit='Y'
logfile="/Library/Caches/com.purplecomputing.mdm/Logs/GoogleChromeInstallScript.log"
deplog="/var/tmp/depnotify.log"
scriptver='1.6'
#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 number from the version check URL
/bin/echo "`date`: Downloading latest version." >> ${logfile}
/bin/echo "Downloading latest version."
/usr/bin/curl -o "/Library/Caches/com.purplecomputing.mdm/Apps/${dnldfile}" ${url}
/bin/echo "`date`: Expanding package." >> ${logfile}
/bin/echo "Expanding package."
pkgutil --expand "/Library/Caches/com.purplecomputing.mdm/Apps/${dnldfile}" /Library/Caches/com.purplecomputing.mdm/Apps/pkg
/bin/echo "`date`: Storing latest version data." >> ${logfile}
/bin/echo "Storing latest version data."
latestver=$(cat /Library/Caches/com.purplecomputing.mdm/Apps/pkg/Distribution | grep 'CFBundleShortVersionString' | cut -f2 -d '"')
/bin/echo "`date`: Removing expanded package" >> ${logfile}
/bin/echo "Removing expanded package."
/bin/rm -rf /Library/Caches/com.purplecomputing.mdm/Apps/pkg
# Get the version number of the currently-installed App, if any.
if [[ -e "/Applications/${appName}.app" ]]; then
currentinstalledver=`/usr/bin/defaults read "/Applications/${appName}.app/Contents/Info" CFBundleShortVersionString`
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`: 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 /
#double check to see if the new version got updated
newlyinstalledver=`/usr/bin/defaults read "/Applications/${appName}.app/Contents/Info" CFBundleShortVersionString`
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`: Removing Existing Dock Icon." >> ${logfile}
/bin/echo "Removing Existing Dock Icon."
/usr/local/bin/dockutil --remove "${appName}" --allhomes >> ${logfile}
/bin/sleep 5
/bin/echo "`date`: Creating New Dock Icon." >> ${logfile}
/bin/echo "Creating New Dock Icon."
/usr/local/bin/dockutil --add "/Applications/${appName}.app" --after 'Safari' --allhomes >> ${logfile}
fi
/bin/sleep 3
/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
/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}
echo "Command: DeterminateManualStep: 1" >> ${deplog}