]> git.proxmox.com Git - efi-boot-shim.git/blame - make-archive
Update the 32-bit format patch after upstream review
[efi-boot-shim.git] / make-archive
CommitLineData
031e5cce
SM
1#!/bin/sh
2set -e
3
4usage() {
5 status="${1}"
6 if [ "${status}" -eq 0 ] ; then
7 out=/dev/stdout
8 else
9 out=/dev/stderr
10 fi
11 {
12 echo "usage: make-archive [--origin ORIGIN] \\"
13 echo " [--test VERSION [GNUEFI_GIT_TAG]"
14 echo " |--release VERSION SHIM_GIT_TAG GNUEFI_GIT_TAG]"
15 } >>"${out}"
16 exit "${status}"
17}
18
19main() {
20 VERSION=""
21 SHIM_GIT_TAG=""
22 GNUEFI_GIT_TAG=""
23 ORIGIN="origin"
24 while [ $# -ne 0 ] ; do
25 case "$1" in
26 --help|--usage|-h|"-?")
27 usage 0
28 ;;
29 --origin)
30 if [ $# -lt 2 ] ; then
31 echo "error: missing origin" >>/dev/stderr
32 usage 1
33 fi
34 ORIGIN="${2}"
35 shift
36 ;;
37 --test)
38 if [ $# -lt 2 ] ; then
39 echo "error: missing version" >>/dev/stderr
40 usage 1
41 fi
42 VERSION="${2}"
43 if [ $# -gt 2 ] ; then
44 GNUEFI_GIT_TAG="${3}"
45 shift
46 fi
47 shift
48 ;;
49 --release)
50 if [ $# -lt 2 ] ; then
51 echo "error: missing version" >>/dev/stderr
52 usage 1
53 fi
54 if [ $# -lt 3 ] ; then
55 echo "error: missing shim git tag" >>/dev/stderr
56 usage 1
57 fi
58 if [ $# -lt 4 ] ; then
59 echo "error: missing gnuefi git tag" >>/dev/stderr
60 usage 1
61 fi
62 VERSION="${2}"
63 SHIM_GIT_TAG="${3}"
64 GNUEFI_GIT_TAG="${4}"
65 shift
66 shift
67 shift
68 ;;
69 *)
70 echo unknown argument "\"$1\"" >>/dev/stderr
71 usage 1
72 ;;
73 esac
74 shift
75 done
76
77 ARCHIVE_DIR="$(mktemp -d)"
78 rm -rf "${ARCHIVE_DIR}/shim-${VERSION}" "${ARCHIVE_DIR}/shim-${VERSION}"
79 mkdir -p "${ARCHIVE_DIR}/shim-${VERSION}/gnu-efi"
80 cd gnu-efi || exit 1
81 if [ "x" = "x${GNUEFI_GIT_TAG}" ] ; then
82 git archive --format=tar "$(git log -1 --pretty=format:%h)" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}/gnu-efi" ; tar x )
83 else
84 git archive --format=tar "${ORIGIN}/${GNUEFI_GIT_TAG}" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}/gnu-efi" ; tar x )
85 fi
86 cd ..
87 if [ "x" = "x${SHIM_GIT_TAG}" ] ; then
88 git archive --format=tar "$(git log -1 --pretty=format:%h)" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}" ; tar x )
89 else
90 # ORIGIN doesn't yet have this tag
91 git archive --format=tar "${SHIM_GIT_TAG}" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}" ; tar x )
92 fi
93 git log -1 --pretty=format:%H > "${ARCHIVE_DIR}/shim-${VERSION}/commit"
94 DIR="$PWD"
95 cd "${ARCHIVE_DIR}"
96 tar -c --bzip2 -f "${DIR}/shim-${VERSION}.tar.bz2" "shim-${VERSION}"
97 rm -rf "${ARCHIVE_DIR}"
98 echo "The archive is in shim-${VERSION}.tar.bz2"
99 exit 0
100}
101
102main "${@}"