From: Sebastien Douheret Date: Tue, 29 Aug 2017 22:54:16 +0000 (+0200) Subject: Fixed syncthing binDir when set to '.' X-Git-Tag: 0.1.0 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Ftags%2F0.1.0;p=src%2Fxds%2Fxds-agent.git Fixed syncthing binDir when set to '.' --- diff --git a/Makefile b/Makefile index 1d13554..56082fd 100644 --- a/Makefile +++ b/Makefile @@ -92,6 +92,7 @@ package-all: GOOS=windows GOARCH=amd64 RELEASE=1 make -f $(ROOT_SRCDIR)/Makefile package @echo "# Build darwin amd64..." GOOS=darwin GOARCH=amd64 RELEASE=1 make -f $(ROOT_SRCDIR)/Makefile package + make -f $(ROOT_SRCDIR)/Makefile clean test: tools/glide go test --race $(shell $(LOCAL_TOOLSDIR)/glide novendor) diff --git a/lib/syncthing/st.go b/lib/syncthing/st.go index a750036..1f78757 100644 --- a/lib/syncthing/st.go +++ b/lib/syncthing/st.go @@ -95,9 +95,17 @@ func (s *SyncThing) startProc(exeName string, args []string, env []string, eChan exec.Command("bash", "-c", "pkill -9 "+exeName).Output() } - path, err := exec.LookPath(path.Join(s.binDir, exeName)) + // When not set (or set to '.') set bin to path of xds-agent executable + bdir := s.binDir + if bdir == "" || bdir == "." { + if dir, err := filepath.Abs(filepath.Dir(os.Args[0])); err == nil { + bdir = dir + } + } + + path, err := exec.LookPath(path.Join(bdir, exeName)) if err != nil { - return nil, fmt.Errorf("Cannot find %s executable in %s", exeName, s.binDir) + return nil, fmt.Errorf("Cannot find %s executable in %s", exeName, bdir) } cmd := exec.Command(path, args...) cmd.Env = os.Environ()