1#!/usr/bin/env python
2#
3# Copyright (C) 2016 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the 'License');
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#      http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an 'AS IS' BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17
18import getopt, json, sys
19
20def PrintFileNames(path):
21  with open(path) as jf:
22    data = json.load(jf)
23  for line in data:
24    print(line["Name"])
25
26def PrintCanonicalList(path):
27  with open(path) as jf:
28    data = json.load(jf)
29  for line in data:
30    print "{0:12d}  {1}".format(line["Size"], line["Name"])
31
32def PrintUsage(name):
33  print("""
34Usage: %s -[nc] json_files_list
35 -n produces list of files only
36 -c produces classic installed-files.txt
37""" % (name))
38
39def main(argv):
40  try:
41    opts, args = getopt.getopt(argv[1:], "nc", "")
42  except getopt.GetoptError, err:
43    print(err)
44    PrintUsage(argv[0])
45    sys.exit(2)
46
47  if len(opts) == 0:
48    print("No conversion option specified")
49    PrintUsage(argv[0])
50    sys.exit(2)
51
52  if len(args) == 0:
53    print("No input file specified")
54    PrintUsage(argv[0])
55    sys.exit(2)
56
57  for o, a in opts:
58    if o == ("-n"):
59      PrintFileNames(args[0])
60      sys.exit()
61    elif o == ("-c"):
62      PrintCanonicalList(args[0])
63      sys.exit()
64    else:
65      assert False, "Unsupported option"
66
67if __name__ == '__main__':
68  main(sys.argv)
69