summaryrefslogtreecommitdiff
path: root/slog-pretty
blob: 4660c00416fdad929637d05057289656a7cd8a6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env python3

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, Dumper=yaml.CSafeDumper)


if len(sys.argv) == 1:
    dump(sys.stdin)
else:
    for filename in sys.argv[1:]:
        with open(filename) as f:
            dump(f)