From 869c14518b078f3070d7b042b3a3f127d93aab1e Mon Sep 17 00:00:00 2001 From: Andrew Scheller Date: Fri, 5 Mar 2021 13:42:08 +0000 Subject: [PATCH] Refactor the imager script to reduce duplication and remove reliance on symlinks --- imager/make-release | 37 ++++++++++++++++++++++++------------- imager/pieeprom.bin | 1 - imager/recovery.bin | 1 - imager/vl805.bin | 1 - 4 files changed, 24 insertions(+), 16 deletions(-) delete mode 120000 imager/pieeprom.bin delete mode 120000 imager/recovery.bin delete mode 120000 imager/vl805.bin diff --git a/imager/make-release b/imager/make-release index 89616ba..47fee52 100755 --- a/imager/make-release +++ b/imager/make-release @@ -1,11 +1,16 @@ #!/bin/sh # Generates three variants of the rpi-eeprom-recovery.zip file for -# SD, USB and NETWORK priority matching the raspi-config options. +# SD, USB and NETWORK priority matching the raspi-config options, +# plus a default (same as SD) set -e +FIRMWARE_RELEASE="critical" +OUTPUT_BASENAME="rpi-boot-eeprom-recovery" + script_dir=$(cd "$(dirname "$0")" && pwd) +firmware_dir=${script_dir}/../firmware/${FIRMWARE_RELEASE} tmp_dir="" die() { @@ -27,40 +32,46 @@ gen_release() { [ -f "${config}" ] || die "File not found \"${config}\"" ( - tmp_dir="$(mktemp -d)" + tmp_dir="$(mktemp -d --tmpdir tmp.rpi-eeprom.XXXXXXXXXX)" cd "${tmp_dir}" - cp "${script_dir}/recovery.bin" . - cp "${script_dir}/vl805.bin" . cp "${script_dir}/README.txt" . + cp "${firmware_dir}/recovery.bin" . + cp "${firmware_dir}/vl805-${vl805_version}.bin" vl805.bin sha256sum vl805.bin | awk '{print $1}' > vl805.sig "${script_dir}/../rpi-eeprom-config" \ --config "${script_dir}/${config}" --out pieeprom.bin \ - "${script_dir}/pieeprom.bin" || die "Failed to create update EEPROM config with \"${config}\"" + "${firmware_dir}/pieeprom-${pieeprom_version}.bin" || die "Failed to create updated EEPROM config with \"${config}\"" sha256sum pieeprom.bin | awk '{print $1}' > pieeprom.sig echo "Creating ${out}" zip "${out}" * + cleanup ) } usage() { cat < + make-release - Example tag "2020-09-03-vl805-000138a1" + Example: make-release 2020-09-03 000138a1 EOF exit } trap cleanup EXIT -tag="${1}" -[ -n "${tag}" ] || usage +pieeprom_version="${1}" +vl805_version="${2}" +[ -n "${pieeprom_version}" ] || usage +[ -n "${vl805_version}" ] || usage +[ -f "${firmware_dir}/pieeprom-${pieeprom_version}.bin" ] || (echo "${FIRMWARE_RELEASE}/pieeprom-${pieeprom_version}.bin doesn't exist" && exit 1) +[ -f "${firmware_dir}/vl805-${vl805_version}.bin" ] || (echo "${FIRMWARE_RELEASE}/vl805-${vl805_version}.bin doesn't exist" && exit 1) +tag="${pieeprom_version}-vl805-${vl805_version}" release_dir="${script_dir}/release" rm -rf "${release_dir}" mkdir "${release_dir}" # Build the different boot priority flavours -gen_release boot-conf-default.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}.zip" -gen_release boot-conf-sd.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}-sd.zip" -gen_release boot-conf-usb.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}-usb.zip" -gen_release boot-conf-network.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}-network.zip" +gen_release boot-conf-default.txt "${release_dir}/${OUTPUT_BASENAME}-${tag}.zip" +for variant in sd usb network; do + gen_release boot-conf-${variant}.txt "${release_dir}/${OUTPUT_BASENAME}-${tag}-${variant}.zip" +done diff --git a/imager/pieeprom.bin b/imager/pieeprom.bin deleted file mode 120000 index 2c1270f..0000000 --- a/imager/pieeprom.bin +++ /dev/null @@ -1 +0,0 @@ -../firmware/critical/pieeprom-2020-09-03.bin \ No newline at end of file diff --git a/imager/recovery.bin b/imager/recovery.bin deleted file mode 120000 index c6d8de0..0000000 --- a/imager/recovery.bin +++ /dev/null @@ -1 +0,0 @@ -../firmware/critical/recovery.bin \ No newline at end of file diff --git a/imager/vl805.bin b/imager/vl805.bin deleted file mode 120000 index b78e45a..0000000 --- a/imager/vl805.bin +++ /dev/null @@ -1 +0,0 @@ -../firmware/critical/vl805-000138a1.bin \ No newline at end of file