From 0b3dd1ba6a962fb6a39e475f021f433e9246249e Mon Sep 17 00:00:00 2001 From: Jeffrey Townsend Date: Wed, 8 Feb 2017 15:51:06 +0000 Subject: [PATCH] Add --ky to add YAML data. --- tools/sjson.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/sjson.py b/tools/sjson.py index 12b7917f..78a777e6 100755 --- a/tools/sjson.py +++ b/tools/sjson.py @@ -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') -