blob: a11efaa8fed674a32c3d8219ce8997bef66e145b [file] [log] [blame]
The Android Open Source Project88b60792009-03-03 19:28:42 -08001#!/usr/bin/env python
2#
3# Copyright (C) 2009 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
Ying Wange5e8c5f2011-09-09 16:35:53 -070018import operator, os, sys
The Android Open Source Project88b60792009-03-03 19:28:42 -080019
20def get_file_size(path):
21 st = os.lstat(path)
22 return st.st_size;
23
24def main(argv):
25 output = []
26 roots = argv[1:]
27 for root in roots:
28 base = len(root[:root.rfind(os.path.sep)])
29 for dir, dirs, files in os.walk(root):
30 relative = dir[base:]
31 for f in files:
32 try:
33 row = (
34 get_file_size(os.path.sep.join((dir, f))),
35 os.path.sep.join((relative, f)),
36 )
37 output.append(row)
38 except os.error:
39 pass
Ying Wange5e8c5f2011-09-09 16:35:53 -070040 output.sort(key=operator.itemgetter(0), reverse=True)
The Android Open Source Project88b60792009-03-03 19:28:42 -080041 for row in output:
42 print "%12d %s" % row
43
44if __name__ == '__main__':
45 main(sys.argv)