File: make-archive.sh

package info (click to toggle)
knot-resolver 6.0.17-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,376 kB
  • sloc: javascript: 42,732; ansic: 40,311; python: 12,580; cpp: 2,121; sh: 1,988; xml: 193; makefile: 181
file content (54 lines) | stat: -rwxr-xr-x 1,634 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# Create an archive from project sources
#
# This script is used by apkg to generate archive from current sources.
# It must only output valid YAML to stdout!

set -o errexit -o nounset -o xtrace

cd "$(dirname ${0})/.."

# make sure we don't accidentally add / overwrite forgotten changes in git
(git diff-index --quiet HEAD && git diff-index --cached --quiet HEAD) || \
    (echo 'git index has uncommitted changes!'; exit 1)

if ! git describe --tags --exact-match >&2; then
    # devel version
    VERSION_TAG=$(git describe --tags | cut -d- -f1)
    VERSION=${VERSION_TAG#v}
    GIT_HASH=$(git rev-parse --short=6 HEAD)
    N_COMMITS=$(git rev-list $VERSION_TAG.. --count)
    FULL_VERSION="$VERSION.dev$N_COMMITS+$GIT_HASH"

    # modify and commit meson.build
    sed -i "s/^\(\s*version\s*:\s*'\)\([^']\+\)\('.*\)/\1$FULL_VERSION\3/" meson.build

    : changed version in meson.build, changes must be committed to git
    git add meson.build >&2
    git commit -m 'DROP: devel version archive' >&2

    cleanup() {
        # undo commit
        git reset --hard HEAD^ >/dev/null
    }
    trap cleanup EXIT
fi

# create tarball
rm -rf build_dist ||:
meson build_dist >&2
ninja -C build_dist dist >&2

# copy tarball to apkg path
DIST_ARCHIVE=$(find "build_dist/meson-dist/" -name "knot-resolver-*.tar.xz")
APKG_ARCHIVE="pkg/archives/dev/$(basename $DIST_ARCHIVE)"
mkdir -p pkg/archives/dev
cp "$DIST_ARCHIVE" "$APKG_ARCHIVE"

# remove build directory
rm -rf build_dist ||:

# print path to generated tarball as expected by apkg
echo "archive: '$APKG_ARCHIVE'"