3 # Copyright (C) 2009 The Android Open Source Project
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
9 # http://www.apache.org/licenses/LICENSE-2.0
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.
18 import json, hashlib, operator, os, sys
20 def get_file_size(path):
24 def get_file_digest(path):
25 if os.path.isfile(path) == False:
26 return "----------------------------------------------------------------"
27 digest = hashlib.sha256()
28 with open(path, 'rb') as f:
30 buf = f.read(1024*1024)
34 return digest.hexdigest();
40 base = len(root[:root.rfind(os.path.sep)])
41 for dir, dirs, files in os.walk(root):
45 path = os.path.sep.join((dir, f))
47 "Size": get_file_size(path),
48 "Name": os.path.sep.join((relative, f)),
49 "SHA256": get_file_digest(path),
54 output.sort(key=operator.itemgetter("Size", "Name"), reverse=True)
55 print json.dumps(output, indent=2, separators=(',',': '))
57 if __name__ == '__main__':