aboutsummaryrefslogtreecommitdiff
path: root/tools/mkdist.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/mkdist.sh')
-rwxr-xr-xtools/mkdist.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/mkdist.sh b/tools/mkdist.sh
new file mode 100755
index 0000000..c21e964
--- /dev/null
+++ b/tools/mkdist.sh
@@ -0,0 +1,30 @@
+#!/bin/sh -e
+
+out() { printf '%s\n' "$@" >&2 ;}
+die() { printf '\033[1;31mERR: \033[m%s\n' "$@" >&2; exit 1;}
+
+case "$1" in ''|-*)
+ die "Run this script by calling 'make dist' from the" \
+ "root repository directory"
+esac
+
+fossil stat >/dev/null 2>&1 || {
+ printf '\033[1;31mERR: \033[m%s\n' \
+ "Distribution tarballs can only be generated using the Fossil repository." \
+ "Exiting..." >&2
+ exit 1
+}
+
+basedir=cpt-$1
+mkdir -p "$basedir"
+
+fossil ls | while read -r file; do
+ case "$file" in
+ */*) mkdir -p "$basedir/${file%/*}"
+ esac
+ cp "$file" "$basedir/$file"
+done
+
+tar cf "$basedir.tar" "$basedir"
+xz -z "$basedir.tar"
+rm -rf -- "$basedir"