From 84151f953ab9f872ef7674146e007dbba18a9b1e Mon Sep 17 00:00:00 2001
From: Sebastian Goscik <sebastian.goscik@live.co.uk>
Date: Mon, 15 Feb 2016 15:09:27 +0000
Subject: [PATCH] Target: Modified get_installed search order

Changed get_installed to search self.executables_directory first.
This means that user provided binaries will be used over system ones.

Also added the option to not search system folders for a binary.
---
 devlib/target.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/devlib/target.py b/devlib/target.py
index 1fb2114..2b88589 100644
--- a/devlib/target.py
+++ b/devlib/target.py
@@ -421,16 +421,19 @@ class Target(object):
     def uninstall(self, name):
         raise NotImplementedError()
 
-    def get_installed(self, name):
-        for path in self.getenv('PATH').split(self.path.pathsep):
-            try:
-                if  name in self.list_directory(path):
-                    return self.path.join(path, name)
-            except TargetError:
-                pass  # directory does not exist or no executable premssions
+    def get_installed(self, name, search_system_binaries=True):
+        # Check user installed binaries first
         if self.file_exists(self.executables_directory):
             if name in self.list_directory(self.executables_directory):
                 return self.path.join(self.executables_directory, name)
+        # Fall back to binaries in PATH
+        if search_system_binaries:
+            for path in self.getenv('PATH').split(self.path.pathsep):
+                try:
+                    if name in self.list_directory(path):
+                        return self.path.join(path, name)
+                except TargetError:
+                    pass  # directory does not exist or no executable premssions
 
     which = get_installed