#!/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"