diff options
Diffstat (limited to 'slog-pretty')
-rwxr-xr-x | slog-pretty | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/slog-pretty b/slog-pretty new file mode 100755 index 0000000..80f07fb --- /dev/null +++ b/slog-pretty @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +import json +import sys + +import yaml + + +def text_representer(dumper, data): + if '\n' in data: + return dumper.represent_scalar( + u'tag:yaml.org,2002:str', data, style='|') + return dumper.represent_scalar( + u'tag:yaml.org,2002:str', data, style='') + +yaml.add_representer(str, text_representer) +yaml.add_representer(unicode, text_representer) + + +def dump(f): + for line in f: + obj = json.loads(line.strip()) + yaml.dump( + obj, stream=sys.stdout, indent=4, default_flow_style=False, + explicit_start=True, explicit_end=True) + + +if len(sys.argv) == 1: + dump(sys.stdin) +else: + for filename in sys.argv[1:]: + with open(filename) as f: + dump(f) |