diff options
Diffstat (limited to 'tools/fileslist_util.py')
-rwxr-xr-x | tools/fileslist_util.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tools/fileslist_util.py b/tools/fileslist_util.py new file mode 100755 index 0000000000..ff40d51a02 --- /dev/null +++ b/tools/fileslist_util.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +# +# Copyright (C) 2016 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the 'License'); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an 'AS IS' BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import getopt, json, sys + +def PrintFileNames(path): + with open(path) as jf: + data = json.load(jf) + for line in data: + print(line["Name"]) + +def PrintCanonicalList(path): + with open(path) as jf: + data = json.load(jf) + for line in data: + print "{0:12d} {1}".format(line["Size"], line["Name"]) + +def PrintUsage(name): + print(""" +Usage: %s -[nc] json_files_list + -n produces list of files only + -c produces classic installed-files.txt +""" % (name)) + +def main(argv): + try: + opts, args = getopt.getopt(argv[1:], "nc", "") + except getopt.GetoptError, err: + print(err) + PrintUsage(argv[0]) + sys.exit(2) + + if len(opts) == 0: + print("No conversion option specified") + PrintUsage(argv[0]) + sys.exit(2) + + if len(args) == 0: + print("No input file specified") + PrintUsage(argv[0]) + sys.exit(2) + + for o, a in opts: + if o == ("-n"): + PrintFileNames(args[0]) + sys.exit() + elif o == ("-c"): + PrintCanonicalList(args[0]) + sys.exit() + else: + assert False, "Unsupported option" + +if __name__ == '__main__': + main(sys.argv) |