Added option for reproducible build

This commit is contained in:
Andreas Schneider 2018-04-09 12:20:09 +02:00
parent cf04126d27
commit 10b96ec705
1 changed files with 18 additions and 4 deletions

View File

@ -3,23 +3,37 @@
package main
import (
"flag"
"os"
"os/exec"
"strings"
)
var reproducible = flag.Bool("r", false, "If set, the build will remove local directories from the debug infos.")
func main() {
flag.Parse()
env := os.Environ()
wd, err := os.Getwd()
if err != nil {
panic(err)
}
env = append(env, "GOPATH="+wd)
args := []string{"build"}
env = append(env, "GOPATH="+wd, "CGO_ENABLED=0")
if len(os.Args) == 2 {
target := os.Args[1]
args := []string{"build", "-ldflags=-s -w"}
if *reproducible {
args = append(args,
"-asmflags=all=-trimpath="+wd,
"-gcflags=all=-trimpath="+wd,
"-a",
)
}
if len(flag.Args()) == 1 {
target := flag.Arg(0)
targetParts := strings.Split(target, "/")
if len(targetParts) != 2 {
println("Invalid target specification. Example: windows/386")