tests/images/iso-extract-pxe.sh
#!/bin/bash
set -xeuo pipefail
PS4='${LINENO}: '

fatal() {
    echo "$@" >&2
    exit 1
}

digest() {
    # Ignore filename
    sha256sum "${1:--}" | awk '{print $1}'
}

compare_digests() {
    local left=$1; shift
    local right=$1; shift
    local left_digest right_digest
    left_digest=$(digest "$left")
    right_digest=$(digest "$right")
    if [ "${left_digest}" != "${right_digest}" ]; then
        echo "$left: $left_digest" >&2
        echo "$right: $right_digest" >&2
        fatal "files do not match"
    fi
}

builddir=$1; shift
builddir=$(realpath "${builddir}")

tmpd=$(mktemp -d)
trap 'rm -rf "${tmpd}"' EXIT
cd "${tmpd}"

# shellcheck disable=SC2086
iso=$(ls ${builddir}/*.iso)
coreos-installer iso extract pxe "${iso}"
base=$(basename "${iso}" .iso)

# check that the files are the same

# shellcheck disable=SC2086
compare_digests "${base}-vmlinuz" ${builddir}/*live-kernel*
# shellcheck disable=SC2086
compare_digests "${base}-initrd.img" ${builddir}/*live-initramfs.*.img
# shellcheck disable=SC2086
compare_digests "${base}-rootfs.img" ${builddir}/*live-rootfs.*.img

# Done
echo "Success."
