build.bash: support VERSION file and vendored go-fuse
Prepares for the release of all-in-one source tarballs that include all non-stdlib dependencies.
This commit is contained in:
parent
a1a98abfbb
commit
9a3791fbc1
3
.gitignore
vendored
3
.gitignore
vendored
@ -17,3 +17,6 @@ gocryptfs.1
|
|||||||
# Dependencies copied by "dep"
|
# Dependencies copied by "dep"
|
||||||
/vendor
|
/vendor
|
||||||
/_vendor-*
|
/_vendor-*
|
||||||
|
|
||||||
|
# Source tarball version. Should never be commited to git.
|
||||||
|
/VERSION
|
||||||
|
51
build.bash
51
build.bash
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -eu
|
||||||
#
|
#
|
||||||
# Compile gocryptfs and bake the git version string of itself and the go-fuse
|
# Compile gocryptfs and bake the git version string of itself and the go-fuse
|
||||||
# library into the binary.
|
# library into the binary.
|
||||||
@ -7,38 +7,49 @@
|
|||||||
# you can use:
|
# you can use:
|
||||||
# BUILDDATE=2017-02-03 ./build.bash
|
# BUILDDATE=2017-02-03 ./build.bash
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
MYDIR=$PWD
|
MYDIR=$PWD
|
||||||
|
|
||||||
|
# Make sure we have the go binary
|
||||||
|
go version > /dev/null
|
||||||
|
|
||||||
# GOPATH may contain multiple paths separated by ":"
|
# GOPATH may contain multiple paths separated by ":"
|
||||||
GOPATH1=$(go env GOPATH | cut -f1 -d:)
|
GOPATH1=$(go env GOPATH | cut -f1 -d:)
|
||||||
|
|
||||||
# gocryptfs version according to git
|
# gocryptfs version according to git or a VERSION file
|
||||||
GITVERSION=$(git describe --tags --dirty)
|
if [[ -d .git ]] ; then
|
||||||
|
GITVERSION=$(git describe --tags --dirty)
|
||||||
# go-fuse version according to git
|
elif [[ -f VERSION ]] ; then
|
||||||
# Note: git in CentOS 7 does not have "git -C" yet, so we use plain "cd".
|
GITVERSION=$(cat VERSION)
|
||||||
FAIL=0
|
else
|
||||||
cd $GOPATH1/src/github.com/hanwen/go-fuse
|
echo "Warning: could not determine gocryptfs version"
|
||||||
OUT=$(git describe --tags --dirty 2>&1) || FAIL=1
|
GITVERSION="[unknown]"
|
||||||
if [[ $FAIL -ne 0 ]]; then
|
fi
|
||||||
echo "$PWD: git describe: $OUT"
|
|
||||||
echo "Hint: are you missing git tags?"
|
# go-fuse version, if available
|
||||||
exit 1
|
if [[ -d vendor/github.com/hanwen/go-fuse ]] ; then
|
||||||
|
GITVERSIONFUSE="[vendored]"
|
||||||
|
else
|
||||||
|
# go-fuse version according to git
|
||||||
|
# Note: git in CentOS 7 does not have "git -C" yet, so we use plain "cd".
|
||||||
|
FAIL=0
|
||||||
|
cd $GOPATH1/src/github.com/hanwen/go-fuse
|
||||||
|
OUT=$(git describe --tags --dirty 2>&1) || FAIL=1
|
||||||
|
if [[ $FAIL -eq 0 ]]; then
|
||||||
|
GITVERSIONFUSE=$OUT
|
||||||
|
else
|
||||||
|
echo "$PWD: git describe: $OUT"
|
||||||
|
echo "Warning: could not determine go-fuse version"
|
||||||
|
GITVERSIONFUSE="[unknown]"
|
||||||
|
fi
|
||||||
|
cd "$MYDIR"
|
||||||
fi
|
fi
|
||||||
GITVERSIONFUSE=$OUT
|
|
||||||
cd "$MYDIR"
|
|
||||||
|
|
||||||
# Build date, something like "2017-09-06"
|
# Build date, something like "2017-09-06"
|
||||||
if [[ -z ${BUILDDATE:-} ]] ; then
|
if [[ -z ${BUILDDATE:-} ]] ; then
|
||||||
BUILDDATE=$(date +%Y-%m-%d)
|
BUILDDATE=$(date +%Y-%m-%d)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Make sure we have the go binary
|
|
||||||
go version > /dev/null
|
|
||||||
|
|
||||||
LDFLAGS="-X main.GitVersion=$GITVERSION -X main.GitVersionFuse=$GITVERSIONFUSE -X main.BuildDate=$BUILDDATE"
|
LDFLAGS="-X main.GitVersion=$GITVERSION -X main.GitVersionFuse=$GITVERSIONFUSE -X main.BuildDate=$BUILDDATE"
|
||||||
go build "-ldflags=$LDFLAGS" $@
|
go build "-ldflags=$LDFLAGS" $@
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user