aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpackage-release-tarballs.bash97
-rwxr-xr-xpackage-source.bash38
-rwxr-xr-xpackage-static.bash29
3 files changed, 97 insertions, 67 deletions
diff --git a/package-release-tarballs.bash b/package-release-tarballs.bash
new file mode 100755
index 0000000..ac651bf
--- /dev/null
+++ b/package-release-tarballs.bash
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+set -eu
+
+cd "$(dirname "$0")"
+
+SIGNME=""
+
+# git_archive_extra PREFIX EXTRA1 [EXTRA2 ...]
+#
+# Call git-archive and add additional files to the tarball.
+# Output tarball is called "$PREFIX.tar.gz" and contains one folder
+# called "$PREFIX".
+git_archive_extra() {
+ local PREFIX=$1
+ shift
+ # Add files tracked in git
+ git archive --prefix "$PREFIX/" -o "$PREFIX.tar" HEAD
+ # Add "extra" files
+ tar --owner=root --group=root --transform "s!^!$PREFIX/!" --append -f "$PREFIX.tar" "$@"
+ # Compress
+ gzip -f "$PREFIX.tar"
+}
+
+package_source() {
+ local GITVERSION
+ GITVERSION=$(git describe --tags --dirty)
+ echo "$GITVERSION" > VERSION
+
+ # Render the manpages and include them in the tarball. This
+ # avoids a build-dependency to pandoc.
+ ./Documentation/MANPAGE-render.bash
+
+ # gocryptfs source tarball
+ local PREFIX_SRC_ONLY=gocryptfs_${GITVERSION}_src
+ git_archive_extra "$PREFIX_SRC_ONLY" VERSION Documentation/*.1
+
+ # gocryptfs source + dependencies tarball
+ go mod vendor
+ local PREFIX_SRC_DEPS=gocryptfs_${GITVERSION}_src-deps
+ git_archive_extra "$PREFIX_SRC_DEPS" VERSION Documentation/*.1 vendor
+
+ rm VERSION
+ rm -R vendor
+
+ echo "Tars created."
+ SIGNME+=" $PREFIX_SRC_ONLY.tar.gz $PREFIX_SRC_DEPS.tar.gz"
+}
+
+package_static_binary() {
+ # Compiles the gocryptfs binary and sets $GITVERSION
+ source build-without-openssl.bash
+
+ if ldd gocryptfs > /dev/null ; then
+ echo "error: compiled gocryptfs binary is not static"
+ exit 1
+ fi
+
+ # Build man pages gocryptfs.1 & gocryptfs-xray.1
+ ./Documentation/MANPAGE-render.bash > /dev/null
+
+ local ARCH
+ ARCH=$(go env GOARCH)
+ local OS
+ OS=$(go env GOOS)
+
+ local TARBALL
+ TARBALL=gocryptfs_${GITVERSION}_${OS}-static_${ARCH}.tar
+ local TARGZ
+ TARGZ=$TARBALL.gz
+
+ tar --owner=root --group=root --create -vf "$TARBALL" gocryptfs
+ tar --owner=root --group=root --append -vf "$TARBALL" -C gocryptfs-xray gocryptfs-xray
+ tar --owner=root --group=root --append -vf "$TARBALL" -C Documentation gocryptfs.1 gocryptfs-xray.1
+
+ gzip -f "$TARBALL"
+
+ echo "Tar created."
+ SIGNME+=" $TARGZ"
+}
+
+signing_hint() {
+ local GITVERSION
+ GITVERSION=$(git describe --tags --dirty)
+
+ echo "Hint for signing:"
+ echo " for i in gocryptfs_${GITVERSION}_*.tar.gz ; do gpg -u 23A02740 --armor --detach-sig \$i ; done"
+}
+
+if git describe --dirty | grep dirty ; then
+ echo "Tree is dirty - I will not package this!"
+ exit 1
+fi
+
+package_source
+package_static_binary
+signing_hint
diff --git a/package-source.bash b/package-source.bash
deleted file mode 100755
index cdd9923..0000000
--- a/package-source.bash
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash -eu
-
-# git_archive_extra PREFIX EXTRA1 [EXTRA2 ...]
-# Call git-archive and add additional files to the tarball.
-git_archive_extra() {
- local PREFIX=$1
- shift
- # Add files tracked in git
- git archive --prefix "$PREFIX/" -o "$PREFIX.tar" HEAD
- # Add "extra" files
- tar --owner=root --group=root --transform "s!^!$PREFIX/!" --append -f "$PREFIX.tar" "$@"
- # Compress
- gzip -f "$PREFIX.tar"
-}
-
-cd "$(dirname "$0")"
-
-GITVERSION=$(git describe --tags --dirty)
-echo "$GITVERSION" > VERSION
-
-# Render the manpages and include them in the tarball. This
-# avoids a build-dependency to pandoc.
-./Documentation/MANPAGE-render.bash
-
-# gocryptfs source tarball
-PREFIX_SRC_ONLY=gocryptfs_${GITVERSION}_src
-git_archive_extra "$PREFIX_SRC_ONLY" VERSION Documentation/*.1
-
-# gocryptfs source + dependencies tarball
-go mod vendor
-PREFIX_SRC_DEPS=gocryptfs_${GITVERSION}_src-deps
-git_archive_extra "$PREFIX_SRC_DEPS" VERSION Documentation/*.1 vendor
-
-rm VERSION
-
-echo "Tars created."
-echo "Hint for signing: gpg -u 23A02740 --armor --detach-sig $PREFIX_SRC_ONLY.tar.gz"
-echo " gpg -u 23A02740 --armor --detach-sig $PREFIX_SRC_DEPS.tar.gz"
diff --git a/package-static.bash b/package-static.bash
deleted file mode 100755
index ce8cecb..0000000
--- a/package-static.bash
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash -eu
-
-cd "$(dirname "$0")"
-
-# Compiles the gocryptfs binary and sets $GITVERSION
-source build-without-openssl.bash
-
-if ldd gocryptfs > /dev/null ; then
- echo "error: compiled gocryptfs binary is not static"
- exit 1
-fi
-
-# Build man pages gocryptfs.1 & gocryptfs-xray.1
-./Documentation/MANPAGE-render.bash > /dev/null
-
-ARCH=$(go env GOARCH)
-OS=$(go env GOOS)
-
-TARBALL=gocryptfs_${GITVERSION}_${OS}-static_${ARCH}.tar
-TARGZ=$TARBALL.gz
-
-tar --owner=root --group=root --create -vf "$TARBALL" gocryptfs
-tar --owner=root --group=root --append -vf "$TARBALL" -C gocryptfs-xray gocryptfs-xray
-tar --owner=root --group=root --append -vf "$TARBALL" -C Documentation gocryptfs.1 gocryptfs-xray.1
-
-gzip -f "$TARBALL"
-
-echo "Tar created."
-echo "Hint for signing: gpg -u 23A02740 --armor --detach-sig $TARGZ"