aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/internal/admin/script-utils/startcbinary/cmd.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/go/internal/admin/script-utils/startcbinary/cmd.go')
-rw-r--r--client/go/internal/admin/script-utils/startcbinary/cmd.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/client/go/internal/admin/script-utils/startcbinary/cmd.go b/client/go/internal/admin/script-utils/startcbinary/cmd.go
new file mode 100644
index 00000000000..9580a9240bb
--- /dev/null
+++ b/client/go/internal/admin/script-utils/startcbinary/cmd.go
@@ -0,0 +1,48 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Author: arnej
+
+package startcbinary
+
+import (
+ "os"
+ "strings"
+
+ "github.com/vespa-engine/vespa/client/go/internal/admin/envvars"
+ "github.com/vespa-engine/vespa/client/go/internal/admin/trace"
+ "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/vespa"
+)
+
+func Run(args []string) int {
+ trace.AdjustVerbosity(0)
+ if len(args) < 1 {
+ trace.Warning("missing program argument")
+ return 1
+ }
+ spec := NewProgSpec(args)
+ err := vespa.LoadDefaultEnv()
+ if err != nil {
+ util.JustExitWith(err)
+ }
+ hostname, err := vespa.FindOurHostname()
+ if err != nil {
+ trace.Warning("could not detect hostname:", err, "; using fallback:", hostname)
+ }
+ return startCbinary(spec)
+}
+
+func IsCandidate(program string) bool {
+ binary := program + "-bin"
+ if strings.Contains(binary, "/") {
+ return util.IsRegularFile(binary)
+ } else {
+ path := strings.Split(os.Getenv(envvars.PATH), ":")
+ for _, dir := range path {
+ fn := dir + "/" + binary
+ if util.IsRegularFile(fn) {
+ return true
+ }
+ }
+ }
+ return false
+}