| Index: cros_extract_deps
|
| diff --git a/cros_extract_deps b/cros_extract_deps
|
| index 87b7bdea9372b678d27693a762f5ef7e77b15e47..03ba92cafa2175241d1cb6ae5566464ff7be430a 100755
|
| --- a/cros_extract_deps
|
| +++ b/cros_extract_deps
|
| @@ -5,8 +5,8 @@
|
|
|
| """Extract dependency tree out of emerge and make it accessible and useful."""
|
|
|
| +import json
|
| import optparse
|
| -import pprint
|
| import re
|
| import shutil
|
| import subprocess
|
| @@ -23,6 +23,14 @@ class ParseException(Exception):
|
| return self.reason
|
|
|
|
|
| +class SetEncoder(json.JSONEncoder):
|
| + """Custom json encoder class, doesn't hate set types."""
|
| + def default(self, o):
|
| + if isinstance(o, set):
|
| + return list(o)
|
| + return json.JSONEncoder.default(self, o)
|
| +
|
| +
|
| def GetDepLinesFromPortage(options, packages):
|
| """Get dependency lines out of emerge.
|
|
|
| @@ -179,7 +187,7 @@ def main():
|
|
|
| lines = GetDepLinesFromPortage(options, packages)
|
| deps_map = ParseDepLines(lines)
|
| - output = pprint.pformat(deps_map)
|
| + output = json.dumps(deps_map, sort_keys=True, indent=2, cls=SetEncoder)
|
| if options.output:
|
| output_file = open(options.output, 'w')
|
| output_file.write(output)
|
|
|