offline_signing: download multiple versions and boards per invocation

This commit is contained in:
Benjamin Gilbert 2017-09-05 16:35:34 -07:00
parent 0a74a57c40
commit b3cb2e0608

View File

@ -2,28 +2,64 @@
set -eux set -eux
BOARD="${1?Must provide a board (e.g. amd64-usr)}" download() {
VERSION="${2?Must provide a version (e.g. 1234.0.0)}" local channel="$1"
CHANNEL="${3?Must provide a channel (e.g. alpha)}" local version="$2"
local board="$3"
if ! [[ "${CHANNEL}" =~ alpha|beta|stable ]]; then local gs="gs://builds.release.core-os.net/${channel}/boards/${board}/${version}"
echo "Invalid channel ${CHANNEL}" local dir="${BASEDIR}/${board}/${version}"
echo "Usage: $0 <BOARD> <VERSION> <CHANNEL> [OUTPUT DIR]" mkdir -p "${dir}"
pushd "${dir}" >/dev/null
gsutil cp \
"${gs}/coreos_production_image.vmlinuz" \
"${gs}/coreos_production_image.vmlinuz.sig" \
"${gs}/coreos_production_update.bin.bz2" \
"${gs}/coreos_production_update.bin.bz2.sig" \
"${gs}/coreos_production_update.zip" \
"${gs}/coreos_production_update.zip.sig" ./
gpg2 --verify "coreos_production_image.vmlinuz.sig"
gpg2 --verify "coreos_production_update.bin.bz2.sig"
gpg2 --verify "coreos_production_update.zip.sig"
popd >/dev/null
}
usage() {
echo "Usage: $0 <ARTIFACT-DIR> [{-a|-b|-s} <VERSION>]..." >&2
exit 1 exit 1
}
CMD=download
BASEDIR="${1:-}"
if [[ -z "${BASEDIR}" ]]; then
usage
fi fi
shift
GS="gs://builds.release.core-os.net/${CHANNEL}/boards/$BOARD/$VERSION" # Walk argument pairs.
while [[ $# > 0 ]]; do
c="$1"
v="${2?Must provide a version (e.g. 1234.0.0)}"
shift 2
cd "${4:-.}" case "${c}" in
-a)
gsutil cp \ $CMD "alpha" "${v}" "amd64-usr"
"${GS}/coreos_production_image.vmlinuz" \ $CMD "alpha" "${v}" "arm64-usr"
"${GS}/coreos_production_image.vmlinuz.sig" \ ;;
"${GS}/coreos_production_update.bin.bz2" \ -b)
"${GS}/coreos_production_update.bin.bz2.sig" \ $CMD "beta" "${v}" "amd64-usr"
"${GS}/coreos_production_update.zip" \ $CMD "beta" "${v}" "arm64-usr"
"${GS}/coreos_production_update.zip.sig" ./ ;;
-s)
gpg2 --verify "coreos_production_image.vmlinuz.sig" $CMD "stable" "${v}" "amd64-usr"
gpg2 --verify "coreos_production_update.bin.bz2.sig" ;;
gpg2 --verify "coreos_production_update.zip.sig" *)
usage
;;
esac
done