From: Ilya Date: Tue, 31 Jan 2017 03:23:13 +0000 (+0900) Subject: python UrlService class: add find_binary method which uses PATH env var X-Git-Tag: ab-debian_0.20170201.01-0ab1~5^2~4 X-Git-Url: https://arthur.barton.de/gitweb/?p=netdata.git;a=commitdiff_plain;h=df0fef4435b6be6d0751341f73c47224d444aed2 python UrlService class: add find_binary method which uses PATH env var --- diff --git a/python.d/python_modules/base.py b/python.d/python_modules/base.py index 320c54ba..3f95fe85 100644 --- a/python.d/python_modules/base.py +++ b/python.d/python_modules/base.py @@ -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