1*9e94795aSAndroid Build Coastguard Worker#!/usr/bin/env python3 2*9e94795aSAndroid Build Coastguard Worker# 3*9e94795aSAndroid Build Coastguard Worker# Copyright (C) 2016 The Android Open Source Project 4*9e94795aSAndroid Build Coastguard Worker# 5*9e94795aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the 'License'); 6*9e94795aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*9e94795aSAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*9e94795aSAndroid Build Coastguard Worker# 9*9e94795aSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*9e94795aSAndroid Build Coastguard Worker# 11*9e94795aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*9e94795aSAndroid Build Coastguard Worker# distributed under the License is distributed on an 'AS IS' BASIS, 13*9e94795aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*9e94795aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*9e94795aSAndroid Build Coastguard Worker# limitations under the License. 16*9e94795aSAndroid Build Coastguard Worker# 17*9e94795aSAndroid Build Coastguard Worker 18*9e94795aSAndroid Build Coastguard Workerimport argparse 19*9e94795aSAndroid Build Coastguard Workerimport json 20*9e94795aSAndroid Build Coastguard Workerimport sys 21*9e94795aSAndroid Build Coastguard Worker 22*9e94795aSAndroid Build Coastguard Workerdef PrintFileNames(path): 23*9e94795aSAndroid Build Coastguard Worker with open(path) as jf: 24*9e94795aSAndroid Build Coastguard Worker data = json.load(jf) 25*9e94795aSAndroid Build Coastguard Worker for line in data: 26*9e94795aSAndroid Build Coastguard Worker print(line["Name"]) 27*9e94795aSAndroid Build Coastguard Worker 28*9e94795aSAndroid Build Coastguard Workerdef PrintCanonicalList(path): 29*9e94795aSAndroid Build Coastguard Worker with open(path) as jf: 30*9e94795aSAndroid Build Coastguard Worker data = json.load(jf) 31*9e94795aSAndroid Build Coastguard Worker for line in data: 32*9e94795aSAndroid Build Coastguard Worker print(f"{line['Size']:12d} {line['Name']}") 33*9e94795aSAndroid Build Coastguard Worker 34*9e94795aSAndroid Build Coastguard Workerdef main(): 35*9e94795aSAndroid Build Coastguard Worker parser = argparse.ArgumentParser() 36*9e94795aSAndroid Build Coastguard Worker parser.add_argument("-n", action="store_true", 37*9e94795aSAndroid Build Coastguard Worker help="produces list of files only") 38*9e94795aSAndroid Build Coastguard Worker parser.add_argument("-c", action="store_true", 39*9e94795aSAndroid Build Coastguard Worker help="produces classic installed-files.txt") 40*9e94795aSAndroid Build Coastguard Worker parser.add_argument("json_files_list") 41*9e94795aSAndroid Build Coastguard Worker args = parser.parse_args() 42*9e94795aSAndroid Build Coastguard Worker 43*9e94795aSAndroid Build Coastguard Worker if args.n and args.c: 44*9e94795aSAndroid Build Coastguard Worker sys.exit("Cannot specify both -n and -c") 45*9e94795aSAndroid Build Coastguard Worker elif args.n: 46*9e94795aSAndroid Build Coastguard Worker PrintFileNames(args.json_files_list) 47*9e94795aSAndroid Build Coastguard Worker elif args.c: 48*9e94795aSAndroid Build Coastguard Worker PrintCanonicalList(args.json_files_list) 49*9e94795aSAndroid Build Coastguard Worker else: 50*9e94795aSAndroid Build Coastguard Worker sys.exit("No conversion option specified") 51*9e94795aSAndroid Build Coastguard Worker 52*9e94795aSAndroid Build Coastguard Workerif __name__ == '__main__': 53*9e94795aSAndroid Build Coastguard Worker main() 54