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