From 031e5cce385d3f96b1caa1d53495332a7eb03749 Mon Sep 17 00:00:00 2001 From: Steve McIntyre Date: Tue, 23 Mar 2021 23:49:46 +0000 Subject: New upstream version 15.3 --- make-archive | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100755 make-archive (limited to 'make-archive') diff --git a/make-archive b/make-archive new file mode 100755 index 00000000..d4f095f0 --- /dev/null +++ b/make-archive @@ -0,0 +1,102 @@ +#!/bin/sh +set -e + +usage() { + status="${1}" + if [ "${status}" -eq 0 ] ; then + out=/dev/stdout + else + out=/dev/stderr + fi + { + echo "usage: make-archive [--origin ORIGIN] \\" + echo " [--test VERSION [GNUEFI_GIT_TAG]" + echo " |--release VERSION SHIM_GIT_TAG GNUEFI_GIT_TAG]" + } >>"${out}" + exit "${status}" +} + +main() { + VERSION="" + SHIM_GIT_TAG="" + GNUEFI_GIT_TAG="" + ORIGIN="origin" + while [ $# -ne 0 ] ; do + case "$1" in + --help|--usage|-h|"-?") + usage 0 + ;; + --origin) + if [ $# -lt 2 ] ; then + echo "error: missing origin" >>/dev/stderr + usage 1 + fi + ORIGIN="${2}" + shift + ;; + --test) + if [ $# -lt 2 ] ; then + echo "error: missing version" >>/dev/stderr + usage 1 + fi + VERSION="${2}" + if [ $# -gt 2 ] ; then + GNUEFI_GIT_TAG="${3}" + shift + fi + shift + ;; + --release) + if [ $# -lt 2 ] ; then + echo "error: missing version" >>/dev/stderr + usage 1 + fi + if [ $# -lt 3 ] ; then + echo "error: missing shim git tag" >>/dev/stderr + usage 1 + fi + if [ $# -lt 4 ] ; then + echo "error: missing gnuefi git tag" >>/dev/stderr + usage 1 + fi + VERSION="${2}" + SHIM_GIT_TAG="${3}" + GNUEFI_GIT_TAG="${4}" + shift + shift + shift + ;; + *) + echo unknown argument "\"$1\"" >>/dev/stderr + usage 1 + ;; + esac + shift + done + + ARCHIVE_DIR="$(mktemp -d)" + rm -rf "${ARCHIVE_DIR}/shim-${VERSION}" "${ARCHIVE_DIR}/shim-${VERSION}" + mkdir -p "${ARCHIVE_DIR}/shim-${VERSION}/gnu-efi" + cd gnu-efi || exit 1 + if [ "x" = "x${GNUEFI_GIT_TAG}" ] ; then + git archive --format=tar "$(git log -1 --pretty=format:%h)" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}/gnu-efi" ; tar x ) + else + git archive --format=tar "${ORIGIN}/${GNUEFI_GIT_TAG}" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}/gnu-efi" ; tar x ) + fi + cd .. + if [ "x" = "x${SHIM_GIT_TAG}" ] ; then + git archive --format=tar "$(git log -1 --pretty=format:%h)" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}" ; tar x ) + else + # ORIGIN doesn't yet have this tag + git archive --format=tar "${SHIM_GIT_TAG}" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}" ; tar x ) + fi + git log -1 --pretty=format:%H > "${ARCHIVE_DIR}/shim-${VERSION}/commit" + DIR="$PWD" + cd "${ARCHIVE_DIR}" + tar -c --bzip2 -f "${DIR}/shim-${VERSION}.tar.bz2" "shim-${VERSION}" + rm -rf "${ARCHIVE_DIR}" + echo "The archive is in shim-${VERSION}.tar.bz2" + exit 0 +} + +main "${@}" -- cgit v1.2.3