Fixed syncthing binDir when set to '.' 0.1.0
authorSebastien Douheret <sebastien.douheret@iot.bzh>
Tue, 29 Aug 2017 22:54:16 +0000 (00:54 +0200)
committerSebastien Douheret <sebastien.douheret@iot.bzh>
Tue, 29 Aug 2017 22:54:16 +0000 (00:54 +0200)
Makefile
lib/syncthing/st.go

index 1d13554..56082fd 100644 (file)
--- 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)
index a750036..1f78757 100644 (file)
@@ -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()