-
Notifications
You must be signed in to change notification settings - Fork 254
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge package-source.bash & package-static.bash scripts
- Loading branch information
Showing
3 changed files
with
97 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.