summaryrefslogtreecommitdiffstats
path: root/bin/hostinfo
diff options
context:
space:
mode:
Diffstat (limited to 'bin/hostinfo')
-rwxr-xr-xbin/hostinfo25
1 files changed, 24 insertions, 1 deletions
diff --git a/bin/hostinfo b/bin/hostinfo
index 1b92fdf..391e7db 100755
--- a/bin/hostinfo
+++ b/bin/hostinfo
@@ -24,6 +24,26 @@ def print_info(path, key=None, oneline=False):
p = printer.Printer(data, oneline)
p.info(key)
+def _print_keys(data, prefix = ''):
+ for key in data.keys():
+ print "%s%s" % (prefix, key)
+
+ if key == 'addresses':
+ for k in set([a['interface'] for a in data[key]]):
+ print "%s%s.%s" % (prefix, key, k)
+ if key == 'ports':
+ for k in set([p['process'] for p in data[key] if 'process' in p]):
+ print "%s%s.%s" % (prefix, key, k)
+ if len([p for p in data[key] if 'process' not in p]) > 0:
+ print "%s%s.%s" % (prefix, key, 'UNKNOWN')
+
+ if isinstance(data[key], dict):
+ _print_keys(data[key], "%s%s." % (prefix, key))
+
+def print_keys(path):
+ data = _get_data(path)
+ _print_keys(data)
+
def find_host(host):
path = "/usr/local/share/hostinfo/%s" % host
if os.path.exists(path):
@@ -51,11 +71,12 @@ def find_host(host):
def main():
self_name = sys.argv.pop(0)
- optlist, args = getopt.gnu_getopt(sys.argv, 'of', ['oneline', 'file'])
+ optlist, args = getopt.gnu_getopt(sys.argv, 'ofk', ['oneline', 'file', 'keys'])
flags = [opt for (opt, value) in optlist if value == '']
file = '--file' in flags or '-f' in flags
oneline = '--oneline' in flags or '-o' in flags
+ keys = '--keys' in flags or '-k' in flags
if len(args) < 1:
print('Usage: %s <host> [info]' % self_name)
@@ -68,6 +89,8 @@ def main():
if file:
print(path)
+ elif keys:
+ print_keys(path)
else:
if len(args) == 1:
print_info(path, oneline=oneline)