Add --ky to add YAML data.

This commit is contained in:
Jeffrey Townsend
2017-02-08 15:51:06 +00:00
parent b976602d8b
commit 0b3dd1ba6a

View File

@@ -5,6 +5,7 @@
#
############################################################
import argparse
import yaml
import json
import os
import sys
@@ -30,6 +31,7 @@ def setkeypath(d, kvt):
ap=argparse.ArgumentParser(description="Simple JSON Generator.")
ap.add_argument("--kj", nargs=2, metavar=('KEY', 'FILE|STR'), help="Add json data.")
ap.add_argument("--ky", nargs=2, metavar=('KEY', 'FILE|STR'), help="Add yaml jdata.")
ap.add_argument("--kv", nargs=2, metavar=('KEY', 'VALUE'), help="Add key/value pair.")
ap.add_argument("--kl", nargs='+', metavar=('KEY', 'ENTRY'), help="Add key/list pair.")
ap.add_argument("--out", metavar='FILENAME', help="Write output to the given file. The default is stdout")
@@ -48,6 +50,14 @@ if ops.kj:
v = json.loads(j)
setkeypath(g_data, (k, v))
if ops.ky:
(k, y) = ops.ky
if os.path.exists(y):
v = yaml.load(open(y))
else:
v = yaml.load(y)
setkeypath(g_data, (k, v))
if ops.kv:
setkeypath(g_data, ops.kv)
@@ -63,4 +73,3 @@ if ops.out and ops.out not in ['-', 'stdout']:
json.dump(g_data, out, indent=ops.indent)
if not ops.no_nl:
out.write('\n')