#!/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))