From 3f4c0c6bd4d993e90fd66138521247a2014e70f2 Mon Sep 17 00:00:00 2001 From: sickcodes Date: Thu, 4 Mar 2021 09:48:04 +0000 Subject: [PATCH] Add --custom-plist-url, --custom-plist or --master-plist to both serial generators. --- custom/generate-specific-bootdisk.sh | 53 +++++++++++++++++++--- custom/generate-unique-machine-values.sh | 58 ++++++++++++++++++++++-- 2 files changed, 102 insertions(+), 9 deletions(-) diff --git a/custom/generate-specific-bootdisk.sh b/custom/generate-specific-bootdisk.sh index d5450b8..1dadfe5 100755 --- a/custom/generate-specific-bootdisk.sh +++ b/custom/generate-specific-bootdisk.sh @@ -22,7 +22,12 @@ General options: --width Resolution x axis length in pixels (default 1920) --height Resolution y axis length in pixels (default 1080 --output-bootdisk Optionally change the bootdisk output filename - --custom-plist Optionally change the input plist + + --master-plist-url Specify an alternative master plist, via URL. + --custom-plist | --master-plist + Optionally change the input plist. Placeholders: + {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}}, + {{UUID}}, {{ROM}}, {{WIDTH}}, {{HEIGHT}} --help, -h, help Display this help and exit @@ -131,12 +136,33 @@ while (( "$#" )); do 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 INPUT_PLIST="${1#*=}" + export MASTER_PLIST="${1#*=}" shift ;; --custom-plist* ) - export INPUT_PLIST="${2}" + export MASTER_PLIST="${2}" shift shift ;; @@ -162,8 +188,23 @@ download_qcow_efi_folder () { } generate_bootdisk () { - [[ -e ./config-nopicker-custom.plist ]] || wget https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/config-nopicker-custom.plist + + if [[ "${MASTER_PLIST}" ]]; then + [[ -e "${MASTER_PLIST}" ]] || echo "Could not find: ${MASTER_PLIST}" + elif [[ "${MASTER_PLIST}" ]] && [[ "${MASTER_PLIST_URL}" ]]; + echo 'You specified both a custom plist file AND a custom plist url. Use one or the other.' + elif [[ "${MASTER_PLIST_URL}" ]]; + 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}" ]] \ @@ -179,7 +220,7 @@ generate_bootdisk () { -e s/{{ROM}}/"${ROM}"/g \ -e s/{{WIDTH}}/"${WIDTH:-1920}"/g \ -e s/{{HEIGHT}}/"${HEIGHT:-1080}"/g \ - "${PLIST_MASTER}" > ./tmp.config.plist || exit 1 + "${MASTER_PLIST}" > ./tmp.config.plist || exit 1 else cat < Resolution x axis length in pixels (default 1920) --height Resolution y axis length in pixels (default 1080 + --master-plist-url Specify an alternative master plist, via URL. + --master-plist | --custom-plist + Optionally change the input plist. Placeholders: + {{DEVICE_MODEL}}, {{SERIAL}}, {{BOARD_SERIAL}}, + {{UUID}}, {{ROM}}, {{WIDTH}}, {{HEIGHT}} + --help, -h, help Display this help and exit --plists Create corresponding config.plists for each serial set. --bootdisks [SLOW] Create corresponding boot disk images for each serial set. @@ -54,7 +60,6 @@ Project: https://github.com/sickcodes/Docker-OSX/ " MACINFOPKG_VERSION=2.1.2 -PLIST_MASTER=config-nopicker-custom.plist # gather arguments while (( "$#" )); do @@ -155,6 +160,39 @@ while (( "$#" )); do 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 + ;; + --plists ) export CREATE_PLISTS=1 shift @@ -206,8 +244,22 @@ download_qcow_efi_folder () { generate_serial_sets () { - [[ -e ./config-nopicker-custom.plist ]] || wget https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/config-nopicker-custom.plist + + if [[ "${MASTER_PLIST}" ]]; then + [[ -e "${MASTER_PLIST}" ]] || echo "Could not find: ${MASTER_PLIST}" + elif [[ "${MASTER_PLIST}" ]] && [[ "${MASTER_PLIST_URL}" ]]; + echo 'You specified both a custom plist file AND a custom plist url. Use one or the other.' + elif [[ "${MASTER_PLIST_URL}" ]]; + 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 + mkdir -p "${OUTPUT_DIRECTORY}/envs" export DATE_NOW="$(date +%F-%T)" export DEVICE_MODEL="${DEVICE_MODEL:=iMacPro1,1}" @@ -271,7 +323,7 @@ EOF -e s/{{ROM}}/"${ROM}"/g \ -e s/{{WIDTH}}/"${WIDTH}"/g \ -e s/{{HEIGHT}}/"${HEIGHT}"/g \ - "${PLIST_MASTER}" > "${OUTPUT_DIRECTORY}/plists/${SERIAL}.config.plist" || exit 1 + "${MASTER_PLIST}" > "${OUTPUT_DIRECTORY}/plists/${SERIAL}.config.plist" || exit 1 fi if [[ "${CREATE_QCOWS}" ]]; then