standardizing on 'echo' and double-quotes
This commit is contained in:
+63
-66
@@ -2,7 +2,7 @@
|
|||||||
# Push-button installer of macOS on VirtualBox
|
# Push-button installer of macOS on VirtualBox
|
||||||
# (c) myspaghetti, licensed under GPL2.0 or higher
|
# (c) myspaghetti, licensed under GPL2.0 or higher
|
||||||
# url: https://github.com/myspaghetti/macos-guest-virtualbox
|
# url: https://github.com/myspaghetti/macos-guest-virtualbox
|
||||||
# version 0.92.0
|
# version 0.92.1
|
||||||
|
|
||||||
# Dependencies: bash coreutils gzip unzip wget xxd dmg2img
|
# Dependencies: bash coreutils gzip unzip wget xxd dmg2img
|
||||||
# Supported versions:
|
# Supported versions:
|
||||||
@@ -81,28 +81,27 @@ clear_input_buffer_then_read
|
|||||||
|
|
||||||
function pad_to_33_chars() {
|
function pad_to_33_chars() {
|
||||||
local padded="${1} "
|
local padded="${1} "
|
||||||
printf "${padded:0:33}"
|
echo -n "${padded:0:33}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# custom settings prompt
|
# custom settings prompt
|
||||||
echo ''
|
echo -e "\nvm_name=\"${vm_name}\""
|
||||||
echo 'vm_name="'"${vm_name}"'"'
|
pad_to_33_chars "macOS_release_name=\"${macOS_release_name}\""
|
||||||
pad_to_33_chars 'macOS_release_name="'"${macOS_release_name}"'"'
|
echo "# install \"HighSierra\" \"Mojave\" or \"Catalina\""
|
||||||
echo '# install "HighSierra" "Mojave" or "Catalina"'
|
pad_to_33_chars "storage_size=${storage_size}"
|
||||||
pad_to_33_chars 'storage_size='"${storage_size}"
|
echo "# VM disk image size in MB. minimum 22000"
|
||||||
echo '# VM disk image size in MB. minimum 22000'
|
pad_to_33_chars "cpu_count=${cpu_count}"
|
||||||
pad_to_33_chars 'cpu_count='"${cpu_count}"
|
echo "# VM CPU cores, minimum 2"
|
||||||
echo '# VM CPU cores, minimum 2'
|
pad_to_33_chars "memory_size=${memory_size}"
|
||||||
pad_to_33_chars 'memory_size='"${memory_size}"
|
echo "# VM RAM in MB, minimum 2048"
|
||||||
echo '# VM RAM in MB, minimum 2048'
|
pad_to_33_chars "gpu_vram=${gpu_vram}"
|
||||||
pad_to_33_chars 'gpu_vram='"${gpu_vram}"
|
echo "# VM video RAM in MB, minimum 34, maximum 128"
|
||||||
echo '# VM video RAM in MB, minimum 34, maximum 128'
|
pad_to_33_chars "resolution=\"${resolution}\""
|
||||||
pad_to_33_chars 'resolution="'"${resolution}"'"'
|
echo -ne "# VM display resolution
|
||||||
printf '# VM display resolution
|
|
||||||
|
|
||||||
These values may be customized as described in the documentation.
|
These values may be customized as described in the documentation.
|
||||||
|
|
||||||
'"${highlight_color}"'Press enter to continue, CTRL-C to exit.'"${default_color}"
|
${highlight_color}Press enter to continue, CTRL-C to exit.${default_color}"
|
||||||
clear_input_buffer_then_read
|
clear_input_buffer_then_read
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,7 +257,7 @@ elif [[ "$(cat /proc/sys/kernel/osrelease 2>/dev/null)" =~ [Mm]icrosoft ]]; then
|
|||||||
else
|
else
|
||||||
echo "Please make sure VirtualBox is installed on Windows, and that the path to the"
|
echo "Please make sure VirtualBox is installed on Windows, and that the path to the"
|
||||||
echo "VBoxManage.exe executable is in the PATH variable, or assigned in the script"
|
echo "VBoxManage.exe executable is in the PATH variable, or assigned in the script"
|
||||||
printf 'to the variable '"${highlight_color}"'wsl_path_VBoxManage'"${default_color}"' including the name of the executable.'
|
echo -e "to the variable \"${highlight_color}wsl_path_VBoxManage${default_color}\" including the name of the executable."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -281,12 +280,12 @@ elif [[ ! ( "${vbox_version:0:1}" -gt 5
|
|||||||
echo "Exiting."
|
echo "Exiting."
|
||||||
exit
|
exit
|
||||||
elif [[ "${vbox_version:0:1}" = 5 ]]; then
|
elif [[ "${vbox_version:0:1}" = 5 ]]; then
|
||||||
printf $'\n'"${highlight_color}"'VirtualBox version '"${vbox_version}"' detected.'"${default_color}"' Please see the following
|
echo -ne "\n${highlight_color}VirtualBox version ${vbox_version} detected.${default_color} Please see the following
|
||||||
URL for issues with the VISO filesystem on VirtualBox 5.2 to 5.2.40:
|
URL for issues with the VISO filesystem on VirtualBox 5.2 to 5.2.40:
|
||||||
|
|
||||||
https://github.com/myspaghetti/macos-guest-virtualbox/issues/86
|
https://github.com/myspaghetti/macos-guest-virtualbox/issues/86
|
||||||
|
|
||||||
'"${highlight_color}"'Press enter to continue, CTRL-C to exit.'"${default_color}"
|
${highlight_color}Press enter to continue, CTRL-C to exit.${default_color}"
|
||||||
clear_input_buffer_then_read
|
clear_input_buffer_then_read
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -352,15 +351,14 @@ print_dimly "${macOS_release_name} selected to be downloaded and installed"
|
|||||||
function prompt_delete_existing_vm() {
|
function prompt_delete_existing_vm() {
|
||||||
print_dimly "stage: prompt_delete_existing_vm"
|
print_dimly "stage: prompt_delete_existing_vm"
|
||||||
if [[ -n "$(VBoxManage showvminfo "${vm_name}" 2>/dev/null)" ]]; then
|
if [[ -n "$(VBoxManage showvminfo "${vm_name}" 2>/dev/null)" ]]; then
|
||||||
echo ''
|
echo -e "\nA virtual machine named \"${vm_name}\" already exists."
|
||||||
echo 'A virtual machine named "'"${vm_name}"'" already exists.'
|
echo -ne "${warning_color}Delete existing virtual machine \"${vm_name}\"?${default_color}"
|
||||||
printf "${warning_color}"'Delete existing virtual machine "'"${vm_name}"'"?'"${default_color}"
|
|
||||||
prompt_delete_y_n
|
prompt_delete_y_n
|
||||||
if [[ "${delete}" == "y" ]]; then
|
if [[ "${delete}" == "y" ]]; then
|
||||||
echo "Deleting ${vm_name} virtual machine."
|
echo "Deleting ${vm_name} virtual machine."
|
||||||
VBoxManage unregistervm "${vm_name}" --delete
|
VBoxManage unregistervm "${vm_name}" --delete
|
||||||
else
|
else
|
||||||
printf $'\n'"${highlight_color}"'Please assign a different VM name to variable "vm_name" by editing the script,'"${default_color}"$'\n'
|
echo -e "\n${highlight_color}Please assign a different VM name to variable \"vm_name\" by editing the script,${default_color}"
|
||||||
echo "or skip this check manually as described when running the following command:"
|
echo "or skip this check manually as described when running the following command:"
|
||||||
would_you_like_to_know_less
|
would_you_like_to_know_less
|
||||||
exit
|
exit
|
||||||
@@ -372,11 +370,11 @@ fi
|
|||||||
function create_vm() {
|
function create_vm() {
|
||||||
print_dimly "stage: create_vm"
|
print_dimly "stage: create_vm"
|
||||||
if [[ -n "$( VBoxManage createvm --name "${vm_name}" --ostype "MacOS1013_64" --register 2>&1 >/dev/null )" ]]; then
|
if [[ -n "$( VBoxManage createvm --name "${vm_name}" --ostype "MacOS1013_64" --register 2>&1 >/dev/null )" ]]; then
|
||||||
printf $'\n''Error: Could not create virtual machine "'"${vm_name}"'".
|
echo -e "\nError: Could not create virtual machine \"${vm_name}\".
|
||||||
'"${highlight_color}"'Please delete exising "'"${vm_name}"'" VirtualBox configuration files '"${warning_color}"'manually'"${default_color}"'.
|
${highlight_color}Please delete exising \"${vm_name}\" VirtualBox configuration files ${warning_color}manually${default_color}.
|
||||||
|
|
||||||
Error message:
|
Error message:
|
||||||
'
|
"
|
||||||
VBoxManage createvm --name "${vm_name}" --ostype "MacOS1013_64" --register 2>/dev/tty
|
VBoxManage createvm --name "${vm_name}" --ostype "MacOS1013_64" --register 2>/dev/tty
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -419,10 +417,10 @@ if [[ ! -s "${macOS_release_name}_sucatalog" ]]; then
|
|||||||
wget --debug -O /dev/null -o "${macOS_release_name}_wget.log" "${sucatalog}"
|
wget --debug -O /dev/null -o "${macOS_release_name}_wget.log" "${sucatalog}"
|
||||||
echo $'\n'"Couldn't download the Apple software update catalog."
|
echo $'\n'"Couldn't download the Apple software update catalog."
|
||||||
if [[ "$(expr match "$(cat "${macOS_release_name}_wget.log")" '.*ERROR[[:print:]]*is not trusted')" -gt "0" ]]; then
|
if [[ "$(expr match "$(cat "${macOS_release_name}_wget.log")" '.*ERROR[[:print:]]*is not trusted')" -gt "0" ]]; then
|
||||||
printf '
|
echo -e "
|
||||||
Make sure certificates from a certificate authority are installed.
|
Make sure certificates from a certificate authority are installed.
|
||||||
Certificates are often installed through the package manager with
|
Certificates are often installed through the package manager with
|
||||||
a package named '"${highlight_color}"'ca-certificates'"${default_color}"
|
a package named ${highlight_color}ca-certificates${default_color}"
|
||||||
fi
|
fi
|
||||||
echo "Exiting."
|
echo "Exiting."
|
||||||
exit
|
exit
|
||||||
@@ -433,7 +431,7 @@ tac "${macOS_release_name}_sucatalog" | csplit - '/InstallAssistantAuto.smd/+1'
|
|||||||
for catalog in "${macOS_release_name}_sucatalog_"* "error"; do
|
for catalog in "${macOS_release_name}_sucatalog_"* "error"; do
|
||||||
if [[ "${catalog}" == error ]]; then
|
if [[ "${catalog}" == error ]]; then
|
||||||
rm "${macOS_release_name}_sucatalog"*
|
rm "${macOS_release_name}_sucatalog"*
|
||||||
printf "Couldn't find the requested download URL in the Apple catalog. Exiting."
|
echo "Couldn't find the requested download URL in the Apple catalog. Exiting."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
urlbase="$(tail -n 1 "${catalog}" 2>/dev/null)"
|
urlbase="$(tail -n 1 "${catalog}" 2>/dev/null)"
|
||||||
@@ -692,13 +690,13 @@ fi
|
|||||||
function create_install_vdi() {
|
function create_install_vdi() {
|
||||||
print_dimly "stage: create_install_vdi"
|
print_dimly "stage: create_install_vdi"
|
||||||
if [[ -w "Install ${macOS_release_name}.vdi" ]]; then
|
if [[ -w "Install ${macOS_release_name}.vdi" ]]; then
|
||||||
echo '"'"Install ${macOS_release_name}.vdi"'" virtual disk image exists.'
|
echo "\"Install ${macOS_release_name}.vdi\" virtual disk image exists."
|
||||||
printf "${warning_color}"'Delete "'"Install ${macOS_release_name}.vdi"'"?'"${default_color}"
|
echo -ne "${warning_color}Delete \"Install ${macOS_release_name}.vdi\"?${default_color}"
|
||||||
prompt_delete_y_n
|
prompt_delete_y_n
|
||||||
if [[ "${delete}" == "y" ]]; then
|
if [[ "${delete}" == "y" ]]; then
|
||||||
if [[ "$( VBoxManage list runningvms )" =~ \""${vm_name}"\" ]]
|
if [[ "$( VBoxManage list runningvms )" =~ \""${vm_name}"\" ]]
|
||||||
then
|
then
|
||||||
echo '"'"Install ${macOS_release_name}.vdi"'" may be deleted'
|
echo "\"Install ${macOS_release_name}.vdi\" may be deleted"
|
||||||
echo "only when the virtual machine is powered off."
|
echo "only when the virtual machine is powered off."
|
||||||
echo "Exiting."
|
echo "Exiting."
|
||||||
exit
|
exit
|
||||||
@@ -826,7 +824,7 @@ send_keys
|
|||||||
kbstring='shutdown -h now'
|
kbstring='shutdown -h now'
|
||||||
send_keys
|
send_keys
|
||||||
send_enter
|
send_enter
|
||||||
printf 'Partitioning the target virtual disk and the installer virtual disk.
|
echo "Partitioning the target virtual disk and the installer virtual disk.
|
||||||
Loading base system onto the installer virtual disk. Moving installation
|
Loading base system onto the installer virtual disk. Moving installation
|
||||||
files to installer virtual disk, updating InstallInfo.plist, and rebooting the
|
files to installer virtual disk, updating InstallInfo.plist, and rebooting the
|
||||||
virtual machine.
|
virtual machine.
|
||||||
@@ -835,8 +833,7 @@ The virtual machine may report that disk space is critically low; this is fine.
|
|||||||
|
|
||||||
When the installer virtual disk is finished being populated, the script will
|
When the installer virtual disk is finished being populated, the script will
|
||||||
shut down the virtual machine. After shutdown, the initial base system will be
|
shut down the virtual machine. After shutdown, the initial base system will be
|
||||||
detached from the VM and released from VirtualBox.
|
detached from the VM and released from VirtualBox."
|
||||||
'
|
|
||||||
print_dimly "If the partitioning fails, exit the script by pressing CTRL-C
|
print_dimly "If the partitioning fails, exit the script by pressing CTRL-C
|
||||||
Otherwise, please wait."
|
Otherwise, please wait."
|
||||||
# Detach the original 2GB BaseSystem.vdi
|
# Detach the original 2GB BaseSystem.vdi
|
||||||
@@ -852,7 +849,7 @@ sleep 3
|
|||||||
function populate_macos_target() {
|
function populate_macos_target() {
|
||||||
print_dimly "stage: populate_macos_target"
|
print_dimly "stage: populate_macos_target"
|
||||||
if [[ "$( VBoxManage list runningvms )" =~ \""${vm_name}"\" ]]; then
|
if [[ "$( VBoxManage list runningvms )" =~ \""${vm_name}"\" ]]; then
|
||||||
printf "${highlight_color}"'Please '"${warning_color}"'manually'"${highlight_color}"' shut down the virtual machine and press enter to continue.'"${default_color}"
|
echo -e "${highlight_color}Please ${warning_color}manually${highlight_color} shut down the virtual machine and press enter to continue.${default_color}"
|
||||||
clear_input_buffer_then_read
|
clear_input_buffer_then_read
|
||||||
fi
|
fi
|
||||||
VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1
|
VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1
|
||||||
@@ -915,18 +912,18 @@ send_keys
|
|||||||
send_enter
|
send_enter
|
||||||
if [[ ! ( "${vbox_version:0:1}" -gt 6
|
if [[ ! ( "${vbox_version:0:1}" -gt 6
|
||||||
|| ( "${vbox_version:0:1}" = 6 && "${vbox_version:2:1}" -ge 1 ) ) ]]; then
|
|| ( "${vbox_version:0:1}" = 6 && "${vbox_version:2:1}" -ge 1 ) ) ]]; then
|
||||||
printf "${highlight_color}"'When the installer finishes preparing and reboots the VM, press enter'"${default_color}"' so the script
|
echo -e "${highlight_color}When the installer finishes preparing and reboots the VM, press enter${default_color} so the script
|
||||||
powers off the virtual machine and detaches the device "'"Install ${macOS_release_name}.vdi"'" to avoid
|
powers off the virtual machine and detaches the device \"Install ${macOS_release_name}.vdi\" to avoid
|
||||||
booting into the initial installer environment again.'
|
booting into the initial installer environment again."
|
||||||
clear_input_buffer_then_read
|
clear_input_buffer_then_read
|
||||||
VBoxManage controlvm "${vm_name}" poweroff >/dev/null 2>&1
|
VBoxManage controlvm "${vm_name}" poweroff >/dev/null 2>&1
|
||||||
for (( i=10; i>5; i-- )); do printf $' \r'"${i}"; sleep 0.5; done
|
for (( i=10; i>5; i-- )); do echo -e " \r${i}"; sleep 0.5; done
|
||||||
VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1
|
VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1
|
||||||
VBoxManage storagectl "${vm_name}" --add sata --name SATA --hostiocache on >/dev/null 2>&1
|
VBoxManage storagectl "${vm_name}" --add sata --name SATA --hostiocache on >/dev/null 2>&1
|
||||||
VBoxManage storageattach "${vm_name}" --storagectl SATA --port 0 \
|
VBoxManage storageattach "${vm_name}" --storagectl SATA --port 0 \
|
||||||
--type hdd --nonrotational on --medium "${vm_name}.vdi"
|
--type hdd --nonrotational on --medium "${vm_name}.vdi"
|
||||||
echo ""
|
echo ""
|
||||||
for (( i=5; i>0; i-- )); do printf $' \r'"${i}"; sleep 0.5; done
|
for (( i=5; i>0; i-- )); do echo -e " \r${i}"; sleep 0.5; done
|
||||||
fi
|
fi
|
||||||
echo -e "For further information, such as applying EFI and NVRAM variables to enable
|
echo -e "For further information, such as applying EFI and NVRAM variables to enable
|
||||||
iMessage connectivity, see the documentation with the following command:\n\n"
|
iMessage connectivity, see the documentation with the following command:\n\n"
|
||||||
@@ -939,11 +936,11 @@ function delete_temporary_files() {
|
|||||||
print_dimly "stage: delete_temporary_files"
|
print_dimly "stage: delete_temporary_files"
|
||||||
if [[ ! "$(VBoxManage showvminfo "${vm_name}")" =~ State:[\ \t]*powered\ off ]]
|
if [[ ! "$(VBoxManage showvminfo "${vm_name}")" =~ State:[\ \t]*powered\ off ]]
|
||||||
then
|
then
|
||||||
printf 'Temporary files may be deleted when the virtual machine is powered off
|
echo -e "Temporary files may be deleted when the virtual machine is powered off
|
||||||
and without a suspended state by running the following command at the script'"'"'s
|
and without a suspended state by running the following command at the script's
|
||||||
working directory:
|
working directory:
|
||||||
|
|
||||||
'"${highlight_color}${0} delete_temporary_files${default_color}"$'\n'
|
${highlight_color}${0} delete_temporary_files${default_color}"
|
||||||
else
|
else
|
||||||
# detach temporary VDIs and attach the macOS target disk
|
# detach temporary VDIs and attach the macOS target disk
|
||||||
VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1
|
VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1
|
||||||
@@ -954,7 +951,7 @@ else
|
|||||||
fi
|
fi
|
||||||
VBoxManage closemedium "Install ${macOS_release_name}.vdi" >/dev/null 2>&1
|
VBoxManage closemedium "Install ${macOS_release_name}.vdi" >/dev/null 2>&1
|
||||||
VBoxManage closemedium "${macOS_release_name}_BaseSystem.vdi" >/dev/null 2>&1
|
VBoxManage closemedium "${macOS_release_name}_BaseSystem.vdi" >/dev/null 2>&1
|
||||||
echo 'The following temporary files are safe to delete:'$'\n'
|
echo -e "The following temporary files are safe to delete:\n"
|
||||||
temporary_files=("${macOS_release_name}_Apple"*
|
temporary_files=("${macOS_release_name}_Apple"*
|
||||||
"${macOS_release_name}_BaseSystem"*
|
"${macOS_release_name}_BaseSystem"*
|
||||||
"${macOS_release_name}_Install"*
|
"${macOS_release_name}_Install"*
|
||||||
@@ -967,7 +964,7 @@ else
|
|||||||
"AppleSupport-v2.0.4-RELEASE.zip"
|
"AppleSupport-v2.0.4-RELEASE.zip"
|
||||||
"dmg2img.exe")
|
"dmg2img.exe")
|
||||||
ls -d "${temporary_files[@]}" 2>/dev/null
|
ls -d "${temporary_files[@]}" 2>/dev/null
|
||||||
printf $'\n'"${warning_color}"'Delete temporary files listed above?'"${default_color}"
|
echo -e "\n${warning_color}Delete temporary files listed above?${default_color}"
|
||||||
prompt_delete_y_n
|
prompt_delete_y_n
|
||||||
if [[ "${delete}" == "y" ]]; then
|
if [[ "${delete}" == "y" ]]; then
|
||||||
rm -f "${temporary_files[@]}" 2>/dev/null
|
rm -f "${temporary_files[@]}" 2>/dev/null
|
||||||
@@ -981,7 +978,7 @@ low_contrast_stages=""
|
|||||||
for stage in ${stages}; do
|
for stage in ${stages}; do
|
||||||
low_contrast_stages="${low_contrast_stages}"' '"${low_contrast_color}${stage}${default_color}"$'\n'
|
low_contrast_stages="${low_contrast_stages}"' '"${low_contrast_color}${stage}${default_color}"$'\n'
|
||||||
done
|
done
|
||||||
printf "
|
echo -ne "
|
||||||
${highlight_color}NAME${default_color}
|
${highlight_color}NAME${default_color}
|
||||||
Push-button installer of macOS on VirtualBox
|
Push-button installer of macOS on VirtualBox
|
||||||
|
|
||||||
@@ -1164,29 +1161,29 @@ echo "and macOS installation file md5 checksums."
|
|||||||
echo "When sharing this file, mind that it contains the above information."
|
echo "When sharing this file, mind that it contains the above information."
|
||||||
echo ""
|
echo ""
|
||||||
for wrapper in 1; do
|
for wrapper in 1; do
|
||||||
echo '################################################################################'
|
echo "################################################################################"
|
||||||
head -n 5 "${0}"
|
head -n 5 "${0}"
|
||||||
echo '################################################################################'
|
echo "################################################################################"
|
||||||
echo 'BASH_VERSION '"${BASH_VERSION}"
|
echo "BASH_VERSION ${BASH_VERSION}"
|
||||||
vbox_ver="$(VBoxManage -v)"
|
vbox_ver="$(VBoxManage -v)"
|
||||||
echo 'VBOX_VERSION '"${vbox_ver//[$'\r\n']/}"
|
echo "VBOX_VERSION ${vbox_ver//[$'\r\n']/}"
|
||||||
macos_ver="$(sw_vers 2>/dev/null)"
|
macos_ver="$(sw_vers 2>/dev/null)"
|
||||||
wsl_ver="$(cat /proc/sys/kernel/osrelease 2>/dev/null)"
|
wsl_ver="$(cat /proc/sys/kernel/osrelease 2>/dev/null)"
|
||||||
win_ver="$(cmd.exe /d /s /c call ver 2>/dev/null)"
|
win_ver="$(cmd.exe /d /s /c call ver 2>/dev/null)"
|
||||||
echo 'OS VERSION '"${macos_ver}${wsl_ver}${win_ver//[$'\r\n']/}"
|
echo "OS VERSION ${macos_ver}${wsl_ver}${win_ver//[$'\r\n']/}"
|
||||||
echo '################################################################################'
|
echo "################################################################################"
|
||||||
echo 'vbox.log'
|
echo "vbox.log"
|
||||||
VBoxManage showvminfo "${vm_name}" --log 0 2>&1
|
VBoxManage showvminfo "${vm_name}" --log 0 2>&1
|
||||||
echo '################################################################################'
|
echo "################################################################################"
|
||||||
echo 'vminfo'
|
echo "vminfo"
|
||||||
VBoxManage showvminfo "${vm_name}" --machinereadable --details 2>&1
|
VBoxManage showvminfo "${vm_name}" --machinereadable --details 2>&1
|
||||||
VBoxManage getextradata "${vm_name}" 2>&1
|
VBoxManage getextradata "${vm_name}" 2>&1
|
||||||
done > "${vm_name}_troubleshoot.txt"
|
done > "${vm_name}_troubleshoot.txt"
|
||||||
echo "Written configuration and logs to \"${highlight_color}${vm_name}_troubleshoot.txt${default_color}\""
|
echo "Written configuration and logs to \"${highlight_color}${vm_name}_troubleshoot.txt${default_color}\""
|
||||||
echo "Press CTRL-C to cancel checksums, or wait for checksumming to complete."
|
echo "Press CTRL-C to cancel checksums, or wait for checksumming to complete."
|
||||||
for wrapper in 1; do
|
for wrapper in 1; do
|
||||||
echo '################################################################################'
|
echo "################################################################################"
|
||||||
echo 'md5 hashes'
|
echo "md5 hashes"
|
||||||
if [[ -n "$(md5sum --version 2>/dev/null)" ]]; then
|
if [[ -n "$(md5sum --version 2>/dev/null)" ]]; then
|
||||||
md5sum "${macOS_release_name}_BaseSystem"* 2>/dev/null
|
md5sum "${macOS_release_name}_BaseSystem"* 2>/dev/null
|
||||||
md5sum "${macOS_release_name}_Install"* 2>/dev/null
|
md5sum "${macOS_release_name}_Install"* 2>/dev/null
|
||||||
@@ -1196,7 +1193,7 @@ for wrapper in 1; do
|
|||||||
md5 "${macOS_release_name}_Install"* 2>/dev/null
|
md5 "${macOS_release_name}_Install"* 2>/dev/null
|
||||||
md5 "${macOS_release_name}_Apple"* 2>/dev/null
|
md5 "${macOS_release_name}_Apple"* 2>/dev/null
|
||||||
fi
|
fi
|
||||||
echo '################################################################################'
|
echo "################################################################################"
|
||||||
done >> "${vm_name}_troubleshoot.txt"
|
done >> "${vm_name}_troubleshoot.txt"
|
||||||
if [ -s "${vm_name}_troubleshoot.txt" ]; then
|
if [ -s "${vm_name}_troubleshoot.txt" ]; then
|
||||||
echo -ne "\nFinished writing to \"${highlight_color}${vm_name}_troubleshoot.txt${default_color}\"\n"
|
echo -ne "\nFinished writing to \"${highlight_color}${vm_name}_troubleshoot.txt${default_color}\"\n"
|
||||||
@@ -1213,7 +1210,7 @@ default_color=$'\033[0m'
|
|||||||
|
|
||||||
# prints positional parameters in low contrast preceded and followed by newline
|
# prints positional parameters in low contrast preceded and followed by newline
|
||||||
function print_dimly() {
|
function print_dimly() {
|
||||||
printf $'\n'"${low_contrast_color}$@${default_color}"$'\n'
|
echo -e "\n${low_contrast_color}$@${default_color}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# don't need sleep when we can read!
|
# don't need sleep when we can read!
|
||||||
@@ -1393,10 +1390,10 @@ function send_enter() {
|
|||||||
|
|
||||||
function prompt_lang_utils() {
|
function prompt_lang_utils() {
|
||||||
# called after the virtual machine boots up
|
# called after the virtual machine boots up
|
||||||
printf $'\n'"${highlight_color}"'Press enter when the Language window is ready.'"${default_color}"
|
echo -ne "\n${highlight_color}Press enter when the Language window is ready.${default_color}"
|
||||||
clear_input_buffer_then_read
|
clear_input_buffer_then_read
|
||||||
send_enter
|
send_enter
|
||||||
printf $'\n'"${highlight_color}"'Press enter when the macOS Utilities window is ready.'"${default_color}"
|
echo -ne "\n${highlight_color}Press enter when the macOS Utilities window is ready.${default_color}"
|
||||||
clear_input_buffer_then_read
|
clear_input_buffer_then_read
|
||||||
kbspecial='CTRLprs F2 CTRLrls u ENTER t ENTER'
|
kbspecial='CTRLprs F2 CTRLrls u ENTER t ENTER'
|
||||||
send_special
|
send_special
|
||||||
@@ -1404,7 +1401,7 @@ function prompt_lang_utils() {
|
|||||||
|
|
||||||
function prompt_terminal_ready() {
|
function prompt_terminal_ready() {
|
||||||
# called after the Utilities window is ready
|
# called after the Utilities window is ready
|
||||||
printf $'\n'"${highlight_color}"'Press enter when the Terminal command prompt is ready.'"${default_color}"
|
echo -ne "\n${highlight_color}Press enter when the Terminal command prompt is ready.${default_color}"
|
||||||
clear_input_buffer_then_read
|
clear_input_buffer_then_read
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1434,9 +1431,9 @@ function cycle_through_terminal_windows() {
|
|||||||
|
|
||||||
function would_you_like_to_know_less() {
|
function would_you_like_to_know_less() {
|
||||||
if [[ -z "$(less --version 2>/dev/null)" ]]; then
|
if [[ -z "$(less --version 2>/dev/null)" ]]; then
|
||||||
printf ' '"${highlight_color}${0} documentation${default_color}"$'\n'
|
echo -e " ${highlight_color}${0} documentation${default_color}"
|
||||||
else
|
else
|
||||||
printf ' '"${highlight_color}${0} documentation | less -R${default_color}"$'\n'
|
echo -e " ${highlight_color}${0} documentation | less -R${default_color}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user