]> arthur.barton.de Git - netdata.git/commitdiff
python UrlService class: add find_binary method which uses PATH env var
authorIlya <ilyamaschenko@gmail.com>
Tue, 31 Jan 2017 03:23:13 +0000 (12:23 +0900)
committerIlya <ilyamaschenko@gmail.com>
Tue, 31 Jan 2017 03:23:13 +0000 (12:23 +0900)
python.d/python_modules/base.py

index 320c54bae3538f73f8fcb0fc6126fda5bf0ec643..3f95fe85da24274c62d0fd89d51741e68c7662ed 100644 (file)
@@ -32,6 +32,11 @@ from subprocess import Popen, PIPE
 import threading
 import msg
 
+try:
+    PATH = os.getenv('PATH').split(':')
+except NameError:
+    PATH = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'.split(':')
+
 
 # class BaseService(threading.Thread):
 class SimpleService(threading.Thread):
@@ -431,6 +436,18 @@ class SimpleService(threading.Thread):
 
         return updated
 
+    def find_binary(self, binary):
+        try:
+            if isinstance(binary, str):
+                binary = os.path.basename(binary)
+                return next(('/'.join([p, binary]) for p in PATH
+                            if os.path.isfile('/'.join([p, binary]))
+                            and os.access('/'.join([p, binary]), os.X_OK)))
+            else:
+                return None
+        except StopIteration:
+            return None
+
 
 class UrlService(SimpleService):
     # TODO add support for https connections