Home | History | Annotate | Download | only in tools
      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 
     18 import getopt, json, sys
     19 
     20 def PrintFileNames(path):
     21   with open(path) as jf:
     22     data = json.load(jf)
     23   for line in data:
     24     print(line["Name"])
     25 
     26 def 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 
     32 def PrintUsage(name):
     33   print("""
     34 Usage: %s -[nc] json_files_list
     35  -n produces list of files only
     36  -c produces classic installed-files.txt
     37 """ % (name))
     38 
     39 def 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 
     67 if __name__ == '__main__':
     68   main(sys.argv)
     69