Make make-release more flexible, and add make-imager-release as a wrapper script around it

This commit is contained in:
Andrew Scheller
2021-03-05 16:21:33 +00:00
parent 869c14518b
commit 7880114040
2 changed files with 35 additions and 17 deletions

7
imager/make-imager-release Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
script_dir=$(cd "$(dirname "$0")" && pwd)
${script_dir}/make-release critical 2020-09-03 000138a1 "${script_dir}" release rpi-boot-eeprom-recovery

View File

@@ -6,11 +6,7 @@
set -e set -e
FIRMWARE_RELEASE="critical"
OUTPUT_BASENAME="rpi-boot-eeprom-recovery"
script_dir=$(cd "$(dirname "$0")" && pwd) script_dir=$(cd "$(dirname "$0")" && pwd)
firmware_dir=${script_dir}/../firmware/${FIRMWARE_RELEASE}
tmp_dir="" tmp_dir=""
die() { die() {
@@ -40,8 +36,8 @@ gen_release() {
sha256sum vl805.bin | awk '{print $1}' > vl805.sig sha256sum vl805.bin | awk '{print $1}' > vl805.sig
"${script_dir}/../rpi-eeprom-config" \ "${script_dir}/../rpi-eeprom-config" \
--config "${script_dir}/${config}" --out pieeprom.bin \ --config "${config}" --out pieeprom.bin \
"${firmware_dir}/pieeprom-${pieeprom_version}.bin" || die "Failed to create updated 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 sha256sum pieeprom.bin | awk '{print $1}' > pieeprom.sig
echo "Creating ${out}" echo "Creating ${out}"
zip "${out}" * zip "${out}" *
@@ -51,27 +47,42 @@ gen_release() {
usage() { usage() {
cat <<EOF cat <<EOF
make-release <pieeprom_version> <vl805_version> make-release <firmware_status> <pieeprom_version> <vl805_version> <config_dir> <output_dir> <output_basename>
Example: make-release 2020-09-03 000138a1 Example: make-release critical 2020-09-03 000138a1 . release rpi-boot-eeprom-recovery
EOF EOF
exit exit
} }
trap cleanup EXIT trap cleanup EXIT
pieeprom_version="${1}" firmware_status="${1}"
vl805_version="${2}" pieeprom_version="${2}"
vl805_version="${3}"
config_dir="${4}"
output_dir="${5}"
output_basename="${6}"
[ -n "${firmware_status}" ] || usage
[ -n "${pieeprom_version}" ] || usage [ -n "${pieeprom_version}" ] || usage
[ -n "${vl805_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) [ -n "${config_dir}" ] || usage
[ -f "${firmware_dir}/vl805-${vl805_version}.bin" ] || (echo "${FIRMWARE_RELEASE}/vl805-${vl805_version}.bin doesn't exist" && exit 1) [ -n "${output_dir}" ] || usage
[ -n "${output_basename}" ] || usage
firmware_dir=${script_dir}/../firmware/${firmware_status}
[ -d "${firmware_dir}" ] || (echo "${firmware_dir} doesn't exist" && exit 1)
[ -f "${firmware_dir}/pieeprom-${pieeprom_version}.bin" ] || (echo "${firmware_status}/pieeprom-${pieeprom_version}.bin doesn't exist" && exit 1)
[ -f "${firmware_dir}/vl805-${vl805_version}.bin" ] || (echo "${firmware_status}/vl805-${vl805_version}.bin doesn't exist" && exit 1)
[ -d "${config_dir}" ] || (echo "${config_dir} doesn't exist" && exit 1)
tag="${pieeprom_version}-vl805-${vl805_version}" tag="${pieeprom_version}-vl805-${vl805_version}"
release_dir="${script_dir}/release" # use realpath to ensure paths are absolute
rm -rf "${release_dir}" config_dir=$(realpath "${config_dir}")
mkdir "${release_dir}" output_dir=$(realpath "${output_dir}")
rm -rf "${output_dir}"
mkdir "${output_dir}"
# Build the different boot priority flavours # Build the different boot priority flavours
gen_release boot-conf-default.txt "${release_dir}/${OUTPUT_BASENAME}-${tag}.zip" gen_release "${config_dir}/boot-conf-default.txt" "${output_dir}/${output_basename}-${tag}.zip"
for variant in sd usb network; do for variant in sd usb network; do
gen_release boot-conf-${variant}.txt "${release_dir}/${OUTPUT_BASENAME}-${tag}-${variant}.zip" gen_release "${config_dir}/boot-conf-${variant}.txt" "${output_dir}/${output_basename}-${tag}-${variant}.zip"
done done