summaryrefslogtreecommitdiff
path: root/release.sh
diff options
context:
space:
mode:
Diffstat (limited to 'release.sh')
-rwxr-xr-xrelease.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/release.sh b/release.sh
new file mode 100755
index 0000000..6ca76b2
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# Make a Halibut release archive.
+
+RELDIR="$1"
+VERSION="$2"
+
+linkmirror() {
+ (cd "$1"; find . -name CVS -prune -o -name .svn -prune -o \
+ -name build -prune -o -name reltmp -prune -o -type d -print) | \
+ while read dir; do mkdir -p "$2"/"$dir"; done
+ (cd "$1"; find . -name CVS -prune -o -name .svn -prune -o \
+ -name build -prune -o -name reltmp -prune -o \
+ -name '*.orig' -prune -o -name '*.rej' -prune -o \
+ -name '*.txt' -prune -o -name '*.html' -prune -o \
+ -name '*.1' -prune -o -name '.cvsignore' -prune -o \
+ -name '*.gz' -prune -o -name '.[^.]*' -prune -o \
+ -type f -print) | \
+ while read file; do ln -s "$1"/"$file" "$2"/"$file"; done
+}
+
+linkmirror $PWD reltmp/$RELDIR
+if ! test -d charset; then
+ linkmirror $PWD/../charset reltmp/$RELDIR/charset
+fi
+
+if test "x${VERSION}y" != "xy"; then
+ (cd reltmp/$RELDIR;
+ find . -name '*.[ch]' -exec md5sum {} \;
+ ) > reltmp/$RELDIR/manifest
+ echo "-DVERSION=\"${VERSION}\"" > reltmp/$RELDIR/version;
+fi
+
+tar chzvoCf reltmp $RELDIR.tar.gz $RELDIR
+
+rm -rf reltmp