build.bash: make reproduceable builds easier
* Reduce the build time precision from seconds to days * Allow to specify an arbitrary build date through an env variable
This commit is contained in:
parent
512be8f081
commit
830cbb7218
15
build.bash
15
build.bash
@ -1,4 +1,11 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Compile gocryptfs and bake the git version string of itself and the go-fuse
|
||||
# library into the binary.
|
||||
#
|
||||
# If you want to fake a build date to reproduce a specific build,
|
||||
# you can use:
|
||||
# BUILDDATE=2017-02-03 ./build.bash
|
||||
|
||||
set -eu
|
||||
|
||||
@ -24,13 +31,15 @@ fi
|
||||
GITVERSIONFUSE=$OUT
|
||||
cd "$MYDIR"
|
||||
|
||||
# Build Unix timestamp, something like 1467554204.
|
||||
BUILDTIME=$(date +%s)
|
||||
# Build date, something like "2017-09-06"
|
||||
if [[ -z ${BUILDDATE:-} ]] ; then
|
||||
BUILDDATE=$(date +%Y-%m-%d)
|
||||
fi
|
||||
|
||||
# Make sure we have the go binary
|
||||
go version > /dev/null
|
||||
|
||||
LDFLAGS="-X main.GitVersion=$GITVERSION -X main.GitVersionFuse=$GITVERSIONFUSE -X main.BuildTime=$BUILDTIME"
|
||||
LDFLAGS="-X main.GitVersion=$GITVERSION -X main.GitVersionFuse=$GITVERSIONFUSE -X main.BuildDate=$BUILDDATE"
|
||||
go build "-ldflags=$LDFLAGS" $@
|
||||
|
||||
(cd gocryptfs-xray; go build $@)
|
||||
|
12
main.go
12
main.go
@ -7,7 +7,6 @@ import (
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/hanwen/go-fuse/fuse"
|
||||
|
||||
@ -26,8 +25,8 @@ var GitVersion = "[GitVersion not set - please compile using ./build.bash]"
|
||||
// GitVersionFuse is the go-fuse library version, set by build.bash
|
||||
var GitVersionFuse = "[GitVersionFuse not set - please compile using ./build.bash]"
|
||||
|
||||
// BuildTime is the Unix timestamp, set by build.bash
|
||||
var BuildTime = "0"
|
||||
// BuildDate is a date string like "2017-09-06", set by build.bash
|
||||
var BuildDate = "0000-00-00"
|
||||
|
||||
// raceDetector is set to true by race.go if we are compiled with "go build -race"
|
||||
var raceDetector bool
|
||||
@ -92,16 +91,11 @@ func changePassword(args *argContainer) {
|
||||
// printVersion prints a version string like this:
|
||||
// gocryptfs v0.12-36-ge021b9d-dirty; go-fuse a4c968c; 2016-07-03 go1.6.2
|
||||
func printVersion() {
|
||||
humanTime := "0000-00-00"
|
||||
if i, _ := strconv.ParseInt(BuildTime, 10, 64); i > 0 {
|
||||
t := time.Unix(i, 0).UTC()
|
||||
humanTime = fmt.Sprintf("%d-%02d-%02d", t.Year(), t.Month(), t.Day())
|
||||
}
|
||||
buildFlags := ""
|
||||
if stupidgcm.BuiltWithoutOpenssl {
|
||||
buildFlags = " without_openssl"
|
||||
}
|
||||
built := fmt.Sprintf("%s %s", humanTime, runtime.Version())
|
||||
built := fmt.Sprintf("%s %s", BuildDate, runtime.Version())
|
||||
if raceDetector {
|
||||
built += " -race"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user