summaryrefslogtreecommitdiff
path: root/summain
diff options
context:
space:
mode:
Diffstat (limited to 'summain')
-rwxr-xr-xsummain19
1 files changed, 19 insertions, 0 deletions
diff --git a/summain b/summain
index ba8b458..9bc8b65 100755
--- a/summain
+++ b/summain
@@ -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)