#!/usr/bin/python
# Author:   Lukas Sabla <lukas.sabla@gmail.com>
# Description:  Converts lines from standard input to JSON for Zabbix discovery.
import os
import sys
import argparse
import json

parser = argparse.ArgumentParser(
        description="Converts lines from standard input to JSON for Zabbix discovery."
)
parser.add_argument("--delimiter",type=str,default=" ",
        help="Delimiter of columns. Default is space"
)
parser.add_argument("keyname",type=str,nargs='+',
        help="The {#KEYNAME} that will be returned."
)
args=parser.parse_args()

if sys.stdin.isatty():
      parser.print_usage()
      sys.stdout.write('{0}: error: No data on stdin\n'.format(os.path.basename(__file__)))
      sys.exit(2)
else:
    data=sys.stdin.read()

    keynames = ['{#'+keyname+'}' for keyname in args.keyname]
    output=[]

    print('{"data":')
    for i in data.splitlines():
        output.append(dict(zip(keynames,i.split(args.delimiter))))
    print json.dumps(output,indent=4)
    print('}')
