diff options
Diffstat (limited to 'tools/mkdist.sh')
-rwxr-xr-x | tools/mkdist.sh | 30 |
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" |