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