summaryrefslogtreecommitdiff
path: root/examples/docker/admin/cmd/ponzu/paths.go
diff options
context:
space:
mode:
Diffstat (limited to 'examples/docker/admin/cmd/ponzu/paths.go')
-rw-r--r--examples/docker/admin/cmd/ponzu/paths.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/docker/admin/cmd/ponzu/paths.go b/examples/docker/admin/cmd/ponzu/paths.go
new file mode 100644
index 0000000..8d5407f
--- /dev/null
+++ b/examples/docker/admin/cmd/ponzu/paths.go
@@ -0,0 +1,44 @@
+package main
+
+import (
+ "os"
+ "os/user"
+ "path/filepath"
+ "runtime"
+ "strings"
+)
+
+// buildOutputName returns the correct ponzu-server file name
+// based on the host Operating System
+func buildOutputName() string {
+ if runtime.GOOS == "windows" {
+ return "ponzu-server.exe"
+ }
+
+ 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
+}