diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-05-17 13:47:00 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-05-17 15:39:43 +0200 |
commit | 45253db95f05baf810c117a555ddec60c0349177 (patch) | |
tree | 67354b5fa0a9e6b2632e32fe27abdf868c89a72c /bin | |
parent | d0d48d32b86ab5f5a5f75074b9b452426b30e7d5 (diff) | |
download | tools-45253db95f05baf810c117a555ddec60c0349177.tar.gz tools-45253db95f05baf810c117a555ddec60c0349177.tar.bz2 tools-45253db95f05baf810c117a555ddec60c0349177.zip |
hostinfo: basepath for the hostinfo files is configurable now
The basepath for the hostinfo files could now customized via the
HOSTINFO_FILES environment variable or the --path, -p command line
option. If nothing exists the default path /usr/local/share/hostinfo
is used like before.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/hostinfo | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/bin/hostinfo b/bin/hostinfo index a25d719..a1dde4a 100755 --- a/bin/hostinfo +++ b/bin/hostinfo @@ -5,7 +5,7 @@ import sys import socket import getopt import yaml -import os.path +import os from dns import resolver,reversename own_directory = os.path.dirname(os.path.abspath(__file__)) @@ -44,14 +44,14 @@ def print_keys(path): data = _get_data(path) _print_keys(data) -def find_host(host): - path = "/usr/local/share/hostinfo/%s" % host +def find_host(basepath, host): + path = os.path.join(basepath, host) if os.path.exists(path): return path # try to build the fqdn - path = "/usr/local/share/hostinfo/%s.spline.inf.fu-berlin.de" % \ - host.replace('.spline.de', '') + path = os.path.join(basepath, "%s.spline.inf.fu-berlin.de" % + host.replace('.spline.de', '')) if os.path.exists(path): return path @@ -59,7 +59,7 @@ def find_host(host): # try to use reverse dns addr=reversename.from_address(host) hostname = str(resolver.query(addr,"PTR")[0]) - path = "/usr/local/share/hostinfo/%s" % hostname[0:-1] + path = os.path.join(basepath, hostname[0:-1]) except: pass @@ -73,12 +73,15 @@ def print_help(self_name): def main(): self_name = sys.argv.pop(0) + basepath = '/usr/local/share/hostinfo' + if 'HOSTINFO_PATH' in os.environ: + basepath = os.environ['HOSTINFO_PATH'] file = oneline = keys = verbose = nospaces = help = False try: - optlist, args = getopt.gnu_getopt(sys.argv, 'ofkvnh?', + optlist, args = getopt.gnu_getopt(sys.argv, 'ofkvnh?p:', ['oneline', 'file', 'keys', 'verbose', - 'nospaces', 'help']) + 'nospaces', 'help', 'path=']) opts = {} for key, value in optlist: opts[key] = value @@ -89,6 +92,9 @@ def main(): verbose = any([o in opts for o in ['--verbose', '-v']]) nospaces = any([o in opts for o in ['--nospaces', '-n']]) help = any([o in opts for o in ['--help', '-h', '-?']]) + + if any([o in opts for o in ['--path', '-p']]): + basepath = [opts[o] for o in ['--path', '-p'] if o in opts][0] except getopt.GetoptError, e: print("Error: %s" % e) print @@ -100,7 +106,7 @@ def main(): sys.exit(1) sys.exit(0) - path = find_host(args[0]) + path = find_host(basepath, args[0]) if path is None: print("Host '%s' could not be found!" % args[0]) sys.exit(1) |