diff --git a/imager/make-imager-release b/imager/make-imager-release new file mode 100755 index 0000000..ffd4e7e --- /dev/null +++ b/imager/make-imager-release @@ -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 diff --git a/imager/make-release b/imager/make-release index 47fee52..556d780 100755 --- a/imager/make-release +++ b/imager/make-release @@ -6,11 +6,7 @@ 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() { @@ -40,8 +36,8 @@ gen_release() { sha256sum vl805.bin | awk '{print $1}' > vl805.sig "${script_dir}/../rpi-eeprom-config" \ - --config "${script_dir}/${config}" --out pieeprom.bin \ - "${firmware_dir}/pieeprom-${pieeprom_version}.bin" || die "Failed to create updated EEPROM config with \"${config}\"" + --config "${config}" --out pieeprom.bin \ + "${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}" * @@ -51,27 +47,42 @@ gen_release() { usage() { cat < + make-release - Example: make-release 2020-09-03 000138a1 + Example: make-release critical 2020-09-03 000138a1 . release rpi-boot-eeprom-recovery EOF exit } trap cleanup EXIT -pieeprom_version="${1}" -vl805_version="${2}" +firmware_status="${1}" +pieeprom_version="${2}" +vl805_version="${3}" +config_dir="${4}" +output_dir="${5}" +output_basename="${6}" + +[ -n "${firmware_status}" ] || usage [ -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) +[ -n "${config_dir}" ] || usage +[ -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}" -release_dir="${script_dir}/release" -rm -rf "${release_dir}" -mkdir "${release_dir}" +# use realpath to ensure paths are absolute +config_dir=$(realpath "${config_dir}") +output_dir=$(realpath "${output_dir}") +rm -rf "${output_dir}" +mkdir "${output_dir}" # 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 - 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