From 6f8c05ea93ec52819785d73f0377d35b1073dc3f Mon Sep 17 00:00:00 2001
From: Sebastien Douheret <sebastien.douheret@iot.bzh>
Date: Wed, 30 Aug 2017 00:54:16 +0200
Subject: Fixed syncthing binDir  when set to '.'

---
 lib/syncthing/st.go | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

(limited to 'lib/syncthing')

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()
-- 
cgit