bin/seed_package_mirror.sh: Script to seed a package mirror

Run this to download all the needed package artifacts for a mirror.

Signed-off-by: Jonathon Hall <jonathon.hall@puri.sm>
This commit is contained in:
Jonathon Hall 2024-08-30 13:50:01 -04:00
parent 51ade5bd10
commit 9c898a7b67
No known key found for this signature in database
GPG Key ID: 1E9C3CA91AE25114

64
bin/seed_package_mirror.sh Executable file
View File

@ -0,0 +1,64 @@
#! /usr/bin/env bash
set -eo pipefail
usage() {
cat >&2 <<USAGE_END
$0 <mirror-directory>
Downloads all current package artifacts needed to build Heads and copies them
to a mirror directory, for seeding a package mirror.
Parameters:
<mirror-directory>: Path to a directory where the packages are placed.
Created if it does not already exist.
USAGE_END
}
ARGS_DONE=
while [[ $# -ge 1 ]] && [ -z "$ARGS_DONE" ]; do
case "$1" in
--)
ARGS_DONE=y
shift
;;
--help)
usage
exit 0
;;
--*)
echo "unknown parameter: $1" >&2
usage
exit 1
;;
*)
ARGS_DONE=y
;;
esac
done
if [[ $# -ne 1 ]]; then
usage
exit 1
fi
ARG_MIRROR_DIR="$(realpath "$1")"
cd "$(dirname "${BASH_SOURCE[0]}")/.."
echo
echo "Cleaning build to download all packages..."
# fetch packages for representative boards
rm -rf build/x86 build/ppc64
rm -rf packages/x86 packages/ppc64
echo
echo "Downloading packages..."
make packages BOARD=qemu-coreboot-fbwhiptail-tpm1-hotp
make packages BOARD=talos-2 # newt, PPC
make packages BOARD=librem_l1um_v2 # TPM2
make packages BOARD=librem_l1um # coreboot 4.11
make packages BOARD=x230-maximized # io386
echo
echo "Copying to mirror directory..."
mkdir -p "$ARG_MIRROR_DIR"
cp packages/x86/* packages/ppc64/* "$ARG_MIRROR_DIR/"