aboutsummaryrefslogtreecommitdiff
path: root/custom/generate-specific-bootdisk.sh
diff options
context:
space:
mode:
authorsickcodes <[email protected]>2021-03-09 08:44:58 +0000
committersickcodes <[email protected]>2021-03-09 08:44:58 +0000
commitab9761adb743713646c537f464514b3e0eba46de (patch)
treebfdb38979871a49a5c1413643efdfe190168a6d2 /custom/generate-specific-bootdisk.sh
parentMerge pull request #169 from sickcodes/nopicker-bug (diff)
downloaddocker-osx-ab9761adb743713646c537f464514b3e0eba46de.tar.xz
docker-osx-ab9761adb743713646c537f464514b3e0eba46de.zip
Add https://github.com/sickcodes/osx-serial-generator.git as a submodule to replace ./custom
Diffstat (limited to 'custom/generate-specific-bootdisk.sh')
-rwxr-xr-xcustom/generate-specific-bootdisk.sh254
1 files changed, 0 insertions, 254 deletions
diff --git a/custom/generate-specific-bootdisk.sh b/custom/generate-specific-bootdisk.sh
deleted file mode 100755
index b847a50..0000000
--- a/custom/generate-specific-bootdisk.sh
+++ /dev/null
@@ -1,254 +0,0 @@
-#!/bin/bash
-# ____ __ ____ ______ __
-# / __ \____ _____/ /_____ _____/ __ \/ ___/ |/ /
-# / / / / __ \/ ___/ //_/ _ \/ ___/ / / /\__ \| /
-# / /_/ / /_/ / /__/ ,< / __/ / / /_/ /___/ / |
-# /_____/\____/\___/_/|_|\___/_/ \____//____/_/|_| GEN BOOT DISK
-#
-# Repo: https://github.com/sickcodes/Docker-OSX/
-# Title: Mac on Docker (Docker-OSX)
-# Author: Sick.Codes https://sick.codes/
-# Version: 3.1
-# License: GPLv3+
-
-help_text="Usage: generate-specific-bootdisk.sh
-
-General options:
- --model <string> Device model, e.g. 'iMacPro1,1'
- --serial <filename> Device Serial number
- --board-serial <filename> Board Serial number
- --uuid <filename> SmUUID
- --mac-address <string> Used to set the ROM value; lowercased and without a colon
- --width <string> Resolution x axis length in pixels (default 1920)
- --height <string> Resolution y axis length in pixels (default 1080
- --output-bootdisk <filename> Optionally change the bootdisk output filename
-
- --master-plist-url <url> Specify an alternative master plist, via URL.
- --custom-plist | --master-plist <filename>
- Optionally change the input plist. Placeholders:
- {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}},
- {{UUID}}, {{ROM}}, {{WIDTH}}, {{HEIGHT}}
-
- --help, -h, help Display this help and exit
-
-Example:
- ./generate-specific-bootdisk.sh \
- --model iMacPro1,1 \
- --serial C02TW0WAHX87 \
- --board-serial C027251024NJG36UE \
- --uuid 5CCB366D-9118-4C61-A00A-E5BAF3BED451 \
- --mac-address A8:5C:2C:9A:46:2F \
- --output-bootdisk OpenCore-nopicker.qcow2 \
- --widht 1920 \
- --height 1080
-
-Author: Sick.Codes https://sick.codes/
-Project: https://github.com/sickcodes/Docker-OSX/
-"
-
-PLIST_MASTER=config-nopicker-custom.plist
-
-# gather arguments
-while (( "$#" )); do
- case "${1}" in
-
- --help | -h | h | help )
- echo "${help_text}" && exit 0
- ;;
-
- --model=* | -m=* )
- export DEVICE_MODEL="${1#*=}"
- shift
- ;;
- --model* | -m* )
- export DEVICE_MODEL="${2}"
- shift
- shift
- ;;
-
- --serial=* )
- export SERIAL="${1#*=}"
- shift
- ;;
- --serial* )
- export SERIAL="${2}"
- shift
- shift
- ;;
-
- --board-serial=* )
- export BOARD_SERIAL="${1#*=}"
- shift
- ;;
- --board-serial* )
- export BOARD_SERIAL="${2}"
- shift
- shift
- ;;
-
- --uuid=* )
- export UUID="${1#*=}"
- shift
- ;;
- --uuid* )
- export UUID="${2}"
- shift
- shift
- ;;
-
- --mac-address=* )
- export MAC_ADDRESS="${1#*=}"
- shift
- ;;
- --mac-address* )
- export MAC_ADDRESS="${2}"
- shift
- shift
- ;;
-
- --width=* )
- export WIDTH="${1#*=}"
- shift
- ;;
- --width* )
- export WIDTH="${2}"
- shift
- shift
- ;;
-
- --height=* )
- export HEIGHT="${1#*=}"
- shift
- ;;
- --height* )
- export HEIGHT="${2}"
- shift
- shift
- ;;
-
- --output-bootdisk=* )
- export OUTPUT_QCOW="${1#*=}"
- shift
- ;;
- --output-bootdisk* )
- export OUTPUT_QCOW="${2}"
- shift
- shift
- ;;
-
- --master-plist-url=* )
- export MASTER_PLIST_URL="${1#*=}"
- shift
- ;;
-
- --master-plist-url* )
- export MASTER_PLIST_URL="${2}"
- shift
- shift
- ;;
-
- --master-plist=* )
- export MASTER_PLIST="${1#*=}"
- shift
- ;;
- --master-plist* )
- export MASTER_PLIST="${2}"
- shift
- shift
- ;;
-
- --custom-plist=* )
- export MASTER_PLIST="${1#*=}"
- shift
- ;;
- --custom-plist* )
- export MASTER_PLIST="${2}"
- shift
- shift
- ;;
-
- *)
- echo "Invalid option. Running with default values..."
- shift
- ;;
- esac
-done
-
-
-download_qcow_efi_folder () {
- git clone --depth 1 https://github.com/kholia/OSX-KVM.git
- cp -ra ./OSX-KVM/OpenCore-Catalina/EFI .
- mkdir -p ./EFI/OC/Resources
- # clone some Apple drivers
- git clone --depth 1 https://github.com/acidanthera/OcBinaryData.git
- # copy said drivers into EFI/OC/Resources
- cp -a ./OcBinaryData/Resources/* ./EFI/OC/Resources
- # EFI Shell commands
- touch startup.nsh && echo 'fs0:\EFI\BOOT\BOOTx64.efi' > startup.nsh
-}
-
-generate_bootdisk () {
-
- if [[ "${MASTER_PLIST}" ]]; then
- [[ -e "${MASTER_PLIST}" ]] || echo "Could not find: ${MASTER_PLIST}"
- elif [[ "${MASTER_PLIST}" ]] && [[ "${MASTER_PLIST_URL}" ]]; then
- echo 'You specified both a custom plist file AND a custom plist url. Use one or the other.'
- elif [[ "${MASTER_PLIST_URL}" ]]; then
- wget -O "${MASTER_PLIST:=./config-custom.plist}" "${MASTER_PLIST_URL}" \
- || { echo "Could not download ${MASTER_PLIST_URL}" && exit 1 ; }
- else
- MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/config-nopicker-custom.plist'
- wget -O "${MASTER_PLIST:=./config-nopicker-custom.plist}" "${MASTER_PLIST_URL}" \
- || { echo "Could not download ${MASTER_PLIST_URL}" && exit 1 ; }
- fi
-
-
- [[ -e ./opencore-image-ng.sh ]] || wget https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/opencore-image-ng.sh && chmod +x opencore-image-ng.sh
-
- # plist required for bootdisks, so create anyway.
- if [[ "${DEVICE_MODEL}" ]] \
- && [[ "${SERIAL}" ]] \
- && [[ "${BOARD_SERIAL}" ]] \
- && [[ "${UUID}" ]] \
- && [[ "${MAC_ADDRESS}" ]]; then
- ROM="${MAC_ADDRESS//\:/}"
- ROM="${ROM,,}"
- sed -e s/{{DEVICE_MODEL}}/"${DEVICE_MODEL}"/g \
- -e s/{{SERIAL}}/"${SERIAL}"/g \
- -e s/{{BOARD_SERIAL}}/"${BOARD_SERIAL}"/g \
- -e s/{{UUID}}/"${UUID}"/g \
- -e s/{{ROM}}/"${ROM}"/g \
- -e s/{{WIDTH}}/"${WIDTH:-1920}"/g \
- -e s/{{HEIGHT}}/"${HEIGHT:-1080}"/g \
- "${MASTER_PLIST}" > ./tmp.config.plist || exit 1
- else
- cat <<EOF
-Error: one of the following values is missing:
-
---model "${DEVICE_MODEL:-MISSING}"
---serial "${SERIAL:-MISSING}"
---board-serial "${BOARD_SERIAL:-MISSING}"
---uuid "${UUID:-MISSING}"
---mac-address "${MAC_ADDRESS:-MISSING}"
-
---width "${WIDTH:-1920}"
---height "${HEIGHT:-1080}"
-
-EOF
- exit 1
- fi
-
- ./opencore-image-ng.sh \
- --cfg "./tmp.config.plist" \
- --img "${OUTPUT_QCOW:-./${SERIAL}.OpenCore-nopicker.qcow2}" || exit 1
- rm ./tmp.config.plist
-
-}
-
-main () {
- download_qcow_efi_folder
- generate_bootdisk
-}
-
-main
-