53 lines
1.5 KiB
Bash
Executable File
53 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
##########################################################################
|
|
# Shellscript : Installs Rosetta as needed on Apple Silicon Macs
|
|
# Autor : Andreas Vogel, nextenterprise gmbh, 18.10.2021
|
|
##########################################################################
|
|
|
|
exitcode=0
|
|
|
|
# Determine OS version
|
|
# Save current IFS state
|
|
|
|
OLDIFS=$IFS
|
|
|
|
IFS='.' read osvers_major osvers_minor osvers_dot_version <<< "$(/usr/bin/sw_vers -productVersion)"
|
|
|
|
# restore IFS to previous state
|
|
|
|
IFS=$OLDIFS
|
|
|
|
# Check to see if the Mac is reporting itself as running macOS 11
|
|
|
|
if [[ ${osvers_major} -ge 11 ]]; then
|
|
|
|
# Check to see if the Mac needs Rosetta installed by testing the processor
|
|
|
|
processor=$(/usr/sbin/sysctl -n machdep.cpu.brand_string | grep -o "Intel")
|
|
|
|
if [[ -n "$processor" ]]; then
|
|
echo "$processor processor installed. No need to install Rosetta."
|
|
else
|
|
|
|
# Check for Rosetta "oahd" process. If not found,
|
|
# perform a non-interactive install of Rosetta.
|
|
|
|
if /usr/bin/pgrep oahd >/dev/null 2>&1; then
|
|
echo "Rosetta is already installed and running. Nothing to do."
|
|
else
|
|
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
|
|
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Rosetta has been successfully installed."
|
|
else
|
|
echo "Rosetta installation failed!"
|
|
exitcode=1
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
echo "Mac is running macOS $osvers_major.$osvers_minor.$osvers_dot_version."
|
|
echo "No need to install Rosetta on this version of macOS."
|
|
fi
|
|
|
|
exit $exitcode |