diff options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/microfactory/microfactory.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/cmd/microfactory/microfactory.go b/cmd/microfactory/microfactory.go index 3ed5a2c3..d0febe77 100644 --- a/cmd/microfactory/microfactory.go +++ b/cmd/microfactory/microfactory.go @@ -67,8 +67,22 @@ var ( verbose = false goToolDir = filepath.Join(runtime.GOROOT(), "pkg", "tool", runtime.GOOS+"_"+runtime.GOARCH) + goVersion = findGoVersion() ) +func findGoVersion() string { + if version, err := ioutil.ReadFile(filepath.Join(runtime.GOROOT(), "VERSION")); err == nil { + return string(version) + } + + cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), "version") + if version, err := cmd.Output(); err == nil { + return string(version) + } else { + panic(fmt.Sprintf("Unable to discover go version: %v", err)) + } +} + type GoPackage struct { Name string @@ -218,7 +232,7 @@ func (p *GoPackage) Compile(outDir, trimPath string) error { shaFile := p.output + ".hash" hash := sha1.New() - fmt.Fprintln(hash, runtime.GOOS, runtime.GOARCH, runtime.Version()) + fmt.Fprintln(hash, runtime.GOOS, runtime.GOARCH, goVersion) cmd := exec.Command(filepath.Join(goToolDir, "compile"), "-o", p.output, |