]> git.proxmox.com Git - efi-boot-shim.git/blob - make-archive
d/control: add empty version pinning package
[efi-boot-shim.git] / make-archive
1 #!/bin/sh
2 set -e
3
4 usage() {
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
19 main() {
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 TIMESTAMP=0
90 else
91 # ORIGIN doesn't yet have this tag
92 git archive --format=tar "${SHIM_GIT_TAG}" | ( cd "${ARCHIVE_DIR}/shim-${VERSION}" ; tar x )
93 TIMESTAMP=$(git log -1 --pretty=%ct "${SHIM_GIT_TAG}")
94 fi
95 git log -1 --pretty=format:%H > "${ARCHIVE_DIR}/shim-${VERSION}/commit"
96 DIR="$PWD"
97 cd "${ARCHIVE_DIR}"
98 tar -c --sort=name --mtime="@${TIMESTAMP}" --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime --bzip2 -f "${DIR}/shim-${VERSION}.tar.bz2" "shim-${VERSION}"
99 rm -rf "${ARCHIVE_DIR}"
100 echo "The archive is in shim-${VERSION}.tar.bz2"
101 exit 0
102 }
103
104 main "${@}"