From bfe96ed5e049e2a172271b893e23b5fd37aa46b1 Mon Sep 17 00:00:00 2001 From: Corey Innis Date: Wed, 3 Feb 2016 12:25:48 -0800 Subject: [PATCH] Adds golint installation and writes export statements. Callers are exected to: `eval $(workspace-generator)` Signed-off-by: Lyle Franklin --- workspace-generator/main.go | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/workspace-generator/main.go b/workspace-generator/main.go index 712c12e..c659d35 100644 --- a/workspace-generator/main.go +++ b/workspace-generator/main.go @@ -8,15 +8,12 @@ import ( "os/exec" ) +// Usage: `eval $(workspace-generator)` func main() { + // set log output to STDERR, because STDOUT is what the caller will eval. log.SetOutput(os.Stderr) - goToolPath, err := exec.LookPath("go") - if err != nil { - log.Fatalln("finding go executable") - } - - log.Printf("using go at %s", goToolPath) + log.Printf("using go at %s", goBinary()) tmpDir, err := ioutil.TempDir("", "generated-go-workspace") if err != nil { @@ -28,16 +25,17 @@ func main() { installPackage("github.com/golang/lint/golint") installPackage("github.com/onsi/ginkgo/ginkgo") - variablesString := fmt.Sprintf("GOPATH=%s PATH=%s/bin:$PATH GO15VENDOREXPERIMENT=1", tmpDir, tmpDir) - expandedVariablesString := os.ExpandEnv(variablesString) + fmt.Printf("export GOPATH=%s\n", tmpDir) + fmt.Printf("export PATH=%s/bin:$PATH\n", tmpDir) + fmt.Printf("export GO15VENDOREXPERIMENT=1\n") - fmt.Println(expandedVariablesString) os.Exit(0) } func installPackage(packageName string) { + log.Printf("Installing package: %s\n", packageName) installCmd := exec.Command( - goToolPath, + goBinary(), "get", packageName, ) @@ -46,3 +44,11 @@ func installPackage(packageName string) { log.Fatalf("installing %s: %s", packageName, string(outBytes)) } } + +func goBinary() string { + goToolPath, err := exec.LookPath("go") + if err != nil { + log.Fatalln("finding go executable") + } + return goToolPath +}