summaryrefslogtreecommitdiff
path: root/slog-pretty
diff options
context:
space:
mode:
Diffstat (limited to 'slog-pretty')
-rwxr-xr-xslog-pretty33
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)