diff options
author | Sasha Levitskiy <sanek@google.com> | 2016-10-10 22:48:10 -0700 |
---|---|---|
committer | Sasha Levitskiy <sanek@google.com> | 2016-10-14 15:01:39 -0700 |
commit | 83561d1f9891dc8b685c19806ec8fb21bec20660 (patch) | |
tree | f274eb9f2a274e64d70e2981e1075e78a2b83e69 /tools/fileslist_util.py | |
parent | 76b3f7a725d1aeebc7d559577420addf02fe45db (diff) |
build: tools: Add json collection of installed files with hashes.
Adds installed-files.json in addition to installed-files.txt
Further sorts the file list to be ordered within the same size bucket.
Test: manual, cross-checked checksums with sha256sum utility
checked build outputs.
Bug: 19988819
Change-Id: Ifb632eb4df65ec48645c8f93e36bae44ccc52ba8
Signed-off-by: Sasha Levitskiy <sanek@google.com>
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) |