summaryrefslogtreecommitdiffstats
path: root/scripts/make-archive.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xscripts/make-archive.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/make-archive.sh b/scripts/make-archive.sh
new file mode 100755
index 0000000..e3b1a97
--- /dev/null
+++ b/scripts/make-archive.sh
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# Create a distribution tarball, like 'make dist' from autotools.
+cd "$(git rev-parse --show-toplevel)"
+ver=$(git describe | sed 's/^v//' | sed 's/-/\./g')
+test 0 -ne $(git status --porcelain | wc -l) && \
+ echo "Git working tree is dirty, make it clean first" && \
+ exit 1
+git submodule status --recursive | grep -q '^[^ ]' && \
+ echo "Git submodules are dirty, run: git submodule update --recursive --init" && \
+ exit 2
+
+# 'git ls-files --recurse-submodules' works only if modules are initialized
+name="knot-resolver-$ver"
+tar caf "$name.tar.xz" -h --no-recursion --transform "s|^|$name/|" -- $(git ls-files --recurse-submodules)
+echo "$name.tar.xz"