make_release_tarball.sh raw
1 #!/bin/sh
2 # Copyright (c) 2020 The Limenka developers
3 # Distributed under the MIT software license, see the accompanying
4 # file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 #
6 # A helper script to generate source release tarball
7
8 export LC_ALL=C
9 set -ex
10
11 [ "$#" -ge 2 ]
12 [ -n "${REFERENCE_DATETIME}" ]
13
14 GIT_ARCHIVE="$1"
15 DISTNAME="$2"
16
17 git archive --prefix="${DISTNAME}/" HEAD |
18 tar -xp \
19 --exclude .cirrus.yml \
20 --exclude '.git*' \
21 --exclude ci \
22 --exclude '*minisketch*' \
23 --exclude 'doc/release-notes' \
24 # end of tar options
25
26 # Generate correct build info file from git, before we lose git
27 GIT_BUILD_INFO="$(cmake -P cmake/script/GenerateBuildInfo.cmake)"
28 sed 's/\/\/ No build information available/'"${GIT_BUILD_INFO}"'/' -i "${DISTNAME}/cmake/script/GenerateBuildInfo.cmake"
29
30 tar \
31 --format=ustar \
32 --sort=name \
33 --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 \
34 --mtime="${REFERENCE_DATETIME}" \
35 -c "${DISTNAME}" | \
36 gzip -9n \
37 >"${GIT_ARCHIVE}"
38
39 rm -rf "${DISTNAME}"
40