#!/bin/bash ########################################################################## # Script : Reinstall macOS # Autor : Andreas Vogel # Copyright : next enterprise gmbh, 2021 ########################################################################## ##### ensure computer does not go to sleep while running this script ##### /usr/bin/caffeinate -dimsu -w $pid & # caffeinate ########################################################################## ################# required for Silicon Macs ############################## jamfHelper="/Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper" if [[ -f "$jamfHelper" ]]; then # Jamf Helper localizations - erase lockscreen jamfHelper_erase_title_en="Erasing macOS" jamfHelper_erase_desc_en="This computer is now being erased and is locked until rebuilt" jamfHelper_erase_title_de="macOS Wiederherstellen" jamfHelper_erase_desc_de="Der Computer wird jetzt zurückgesetzt und neu gestartet" jamfHelper_erase_button_en="Yes" jamfHelper_erase_button_de="Ja" jamfHelper_erase_cancel_button_en="Cancel" jamfHelper_erase_cancel_button_de="Abbrechen" # Jamf Helper localizations - free space check jamfHelper_check_desc_en="The macOS upgrade cannot be installed on a computer with less than 30GB disk space." jamfHelper_check_desc_de="Die Installation von macOS ist auf einem Computer mit weniger als 30GB freien Festplattenspeicher nicht möglich." # Jamf Helper icon for confirmation dialog jamfHelper_confirmation_icon="/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertStopIcon.icns" # Grab currently logged in user to set the language for Jamf Helper messages current_user=$(/usr/sbin/scutil <<< "show State:/Users/ConsoleUser" | /usr/bin/awk -F': ' '/[[:space:]]+Name[[:space:]]:/ { if ( $2 != "loginwindow" ) { print $2 }}') language=$(/usr/libexec/PlistBuddy -c 'print AppleLanguages:0' "/Users/${current_user}/Library/Preferences/.GlobalPreferences.plist") if [[ $language = de* ]]; then user_language="de" else user_language="en" fi jamfHelper_erase_title=jamfHelper_erase_title_${user_language} jamfHelper_erase_desc=jamfHelper_erase_desc_${user_language} jamfHelper_check_desc=jamfHelper_check_desc_${user_language} jamfHelper_erase_button=jamfHelper_erase_button_${user_language} jamfHelper_erase_cancel_button=jamfHelper_erase_cancel_button_${user_language} fi kill_process() { process="$1" if /usr/bin/pgrep -a "$process" >/dev/null ; then /usr/bin/pkill -a "$process" && echo " '$process' ended" || \ echo "'$process' could not be killed" fi } ################# required for Silicon Macs ############################## ask_username() { /usr/bin/osascript <