simplified dmg2img conditionals

This commit is contained in:
My Spaghetti
2020-07-26 22:45:33 +03:00
parent 238af06c80
commit af8c16b8ee
+15 -20
View File
@@ -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-virtualbox # url: https://github.com/myspaghetti/macos-virtualbox
# version 0.96.2 # version 0.96.3
# Dependencies: bash coreutils gzip unzip wget xxd dmg2img # Dependencies: bash coreutils gzip unzip wget xxd dmg2img
# Supported versions: # Supported versions:
@@ -300,7 +300,8 @@ if [[ -z "$(dmg2img -d 2>/dev/null)" ]]; then
if [[ -z "$(cygcheck -V 2>/dev/null)" ]]; then if [[ -z "$(cygcheck -V 2>/dev/null)" ]]; then
echo "Please install the package dmg2img." echo "Please install the package dmg2img."
exit exit
elif [[ -z "$("${PWD}/dmg2img.exe" -d 2>/dev/null)" ]]; then elif [[ -z "$("${PWD%%/}/dmg2img.exe" -d 2>/dev/null)" ]]; then
if [[ -z "${PWD}" ]]; then echo "PWD environment variable is not set. Exiting."; exit; fi
echo "Locally installing dmg2img" echo "Locally installing dmg2img"
wget "http://vu1tur.eu.org/tools/dmg2img-1.6.6-win32.zip" \ wget "http://vu1tur.eu.org/tools/dmg2img-1.6.6-win32.zip" \
${wgetargs} \ ${wgetargs} \
@@ -312,6 +313,10 @@ if [[ -z "$(dmg2img -d 2>/dev/null)" ]]; then
unzip -oj "dmg2img-1.6.6-win32.zip" "dmg2img.exe" unzip -oj "dmg2img-1.6.6-win32.zip" "dmg2img.exe"
rm "dmg2img-1.6.6-win32.zip" rm "dmg2img-1.6.6-win32.zip"
chmod +x "dmg2img.exe" chmod +x "dmg2img.exe"
elif [[ -n "$("${PWD%%/}/dmg2img.exe" -d 2>/dev/null)" ]]; then
function dmg2img() {
"${PWD%%/}/dmg2img.exe" "$@"
}
fi fi
fi fi
@@ -635,23 +640,17 @@ echo "/ESP/startup.nsh=\"${vm_name}_startup.nsh\"" >> "${macOS_release_name}_ins
# Create the macOS base system virtual disk image # Create the macOS base system virtual disk image
function create_basesystem_virtual_disk() { function create_basesystem_virtual_disk() {
print_dimly "stage: create_basesystem_virtual_disk" print_dimly "stage: create_basesystem_virtual_disk"
if [[ -s "${macOS_release_name}_BaseSystem.${storage_format}" ]]; then [[ -s "${macOS_release_name}_BaseSystem.${storage_format}" ]] && echo "${macOS_release_name}_BaseSystem.${storage_format} bootstrap virtual disk image exists." && return
echo "${macOS_release_name}_BaseSystem.${storage_format} bootstrap virtual disk image exists." [[ ! -s "${macOS_release_name}_BaseSystem.dmg" ]] && echo -e "\nCould not find ${macOS_release_name}_BaseSystem.dmg; exiting." && exit
elif [[ ! -s "${macOS_release_name}_BaseSystem.dmg" ]]; then
echo -e "\nCould not find ${macOS_release_name}_BaseSystem.dmg; exiting."
exit
else
local failed=''
echo "Converting BaseSystem.dmg to BaseSystem.img" echo "Converting BaseSystem.dmg to BaseSystem.img"
if [[ -n "$("${PWD}/dmg2img.exe" -d 2>/dev/null)" ]]; then dmg2img "${macOS_release_name}_BaseSystem.dmg" "${macOS_release_name}_BaseSystem.img"
"${PWD}/dmg2img.exe" "${macOS_release_name}_BaseSystem.dmg" "${macOS_release_name}_BaseSystem.img" || local failed='failed'
else
dmg2img "${macOS_release_name}_BaseSystem.dmg" "${macOS_release_name}_BaseSystem.img" || local failed='failed'
fi
VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1 VBoxManage storagectl "${vm_name}" --remove --name SATA >/dev/null 2>&1
VBoxManage closemedium "${macOS_release_name}_BaseSystem.${storage_format}" >/dev/null 2>&1 VBoxManage closemedium "${macOS_release_name}_BaseSystem.${storage_format}" >/dev/null 2>&1
VBoxManage convertfromraw --format "${storage_format}" "${macOS_release_name}_BaseSystem.img" "${macOS_release_name}_BaseSystem.${storage_format}" || local failed='failed' VBoxManage convertfromraw --format "${storage_format}" "${macOS_release_name}_BaseSystem.img" "${macOS_release_name}_BaseSystem.${storage_format}" && local success="True"
if [[ -n "${failed}" ]]; then if [[ "${success}" = "True" ]]; then
rm "${macOS_release_name}_BaseSystem.img" 2>/dev/null
return
fi
echo "Failed to create \"${macOS_release_name}_BaseSystem.${storage_format}\"." echo "Failed to create \"${macOS_release_name}_BaseSystem.${storage_format}\"."
if [[ "$(cat /proc/sys/kernel/osrelease 2>/dev/null)" =~ [Mm]icrosoft ]]; then if [[ "$(cat /proc/sys/kernel/osrelease 2>/dev/null)" =~ [Mm]icrosoft ]]; then
echo -e "\nSome versions of WSL require the script to execute on a Windows filesystem path," echo -e "\nSome versions of WSL require the script to execute on a Windows filesystem path,"
@@ -661,10 +660,6 @@ else
fi fi
echo "Exiting." echo "Exiting."
exit exit
else
rm "${macOS_release_name}_BaseSystem.img" 2>/dev/null
fi
fi
} }
# Create the target virtual disk image # Create the target virtual disk image