diff options
author | tv <tv@nomic.retiolum> | 2013-02-08 19:41:54 +0100 |
---|---|---|
committer | tv <tv@nomic.retiolum> | 2013-02-08 19:41:54 +0100 |
commit | c013d579e8fd73697eb52b8aafd269cdfef385a5 (patch) | |
tree | a1b8280851e77357c9b589927460dc1dd2162ed5 /retiolum/bin/nodes-to-json.py | |
parent | 77ba7045aefd9231d8c7196fadd6cc4cf4dc3f81 (diff) | |
parent | 6228db160f3c2d710c87938c4ef2c5b819da764d (diff) |
Merge branch 'master' of https://github.com/krebscode/painload
Diffstat (limited to 'retiolum/bin/nodes-to-json.py')
-rw-r--r-- | retiolum/bin/nodes-to-json.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/retiolum/bin/nodes-to-json.py b/retiolum/bin/nodes-to-json.py new file mode 100644 index 00000000..ca9d3c8c --- /dev/null +++ b/retiolum/bin/nodes-to-json.py @@ -0,0 +1,37 @@ +#!/usr/bin/python + +def parse_hosts_path(path="/etc/tinc/retiolum/hosts"): + import os + import re + + needle_addr = re.compile("Subnet\s*=\s*(.*)/[0-9]+") + needle_port = re.compile("Port\s*=\s*(.*)") + for f in os.listdir(path): + with open(path+"/"+f) as of: + addrs = [] + port = "655" + + for line in of.readlines(): + + addr_found = needle_addr.match(line) + if addr_found: + addrs.append(addr_found.group(1)) + + port_found = needle_port.match(line) + if port_found: + port = port_found.group(1) + + if addrs : yield (f ,[(addr ,int(port)) for addr in addrs]) + + + +if __name__ == "__main__": + """ + usage + """ + import json + import sys + db={} + for host,addrs in parse_hosts_path(sys.argv[1] if len(sys.argv) > 2 else "/etc/tinc/retiolum/hosts"): + db[host] = addrs + print(json.dumps(db)) |