summaryrefslogtreecommitdiff
path: root/cmd/ponzu/paths.go
diff options
context:
space:
mode:
authorCarlos Fernández <sirikon2@gmail.com>2017-03-01 22:47:00 +0100
committerCarlos Fernández <sirikon2@gmail.com>2017-03-01 22:47:00 +0100
commita19b16e6e5fb8015869dbf7176fc6d3fa96f858e (patch)
tree990f5ac01a97426775233fbec87fd4f2e6e83981 /cmd/ponzu/paths.go
parentad6220d2459e30569827b67e13921b0cd6257447 (diff)
Move getGOPATH method to paths.go
Diffstat (limited to 'cmd/ponzu/paths.go')
-rw-r--r--cmd/ponzu/paths.go33
1 files changed, 32 insertions, 1 deletions
diff --git a/cmd/ponzu/paths.go b/cmd/ponzu/paths.go
index 8bc6e39..8d5407f 100644
--- a/cmd/ponzu/paths.go
+++ b/cmd/ponzu/paths.go
@@ -1,6 +1,12 @@
package main
-import "runtime"
+import (
+ "os"
+ "os/user"
+ "path/filepath"
+ "runtime"
+ "strings"
+)
// buildOutputName returns the correct ponzu-server file name
// based on the host Operating System
@@ -11,3 +17,28 @@ func buildOutputName() string {
return "ponzu-server"
}
+
+// resolve GOPATH. In 1.8 can be default, or custom. A custom GOPATH can
+// also contain multiple paths, in which case 'go get' uses the first
+func getGOPATH() (string, error) {
+ var gopath string
+ gopath = os.Getenv("GOPATH")
+ if gopath == "" {
+ // not set, find the default
+ usr, err := user.Current()
+ if err != nil {
+ return gopath, err
+ }
+ gopath = filepath.Join(usr.HomeDir, "go")
+ } else {
+ // parse out in case of multiple, retain first
+ if runtime.GOOS == "windows" {
+ gopaths := strings.Split(gopath, ";")
+ gopath = gopaths[0]
+ } else {
+ gopaths := strings.Split(gopath, ":")
+ gopath = gopaths[0]
+ }
+ }
+ return gopath, nil
+}