diff options
-rwxr-xr-x | summain | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -17,6 +17,7 @@ import cliapp import csv +import json import os import sys @@ -66,6 +67,23 @@ class CSV(OutputFormat): self.writer.writerow(values) +class Json(OutputFormat): + + def __init__(self, output): + OutputFormat.__init__(self, output) + + def write_object(self, name, o, checksums): + keys = self.keys + checksums + + values = { 'Name': name } + for k in keys: + if o[k] != '': + values[k] = o[k] + + json.dump(values, self.output, sort_keys=True, indent=1) + self.output.write('\n') + + class Summain(cliapp.Application): def add_settings(self): @@ -149,6 +167,7 @@ class Summain(cliapp.Application): table = { 'rfc822': Rfc822, 'csv': CSV, + 'json': Json, } return table[self.settings['output-format']](self.output) |