diff options
Diffstat (limited to 'Tools/scripts/dutree.py')
-rwxr-xr-x | Tools/scripts/dutree.py | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/Tools/scripts/dutree.py b/Tools/scripts/dutree.py index d25cf72..d938ae1 100755 --- a/Tools/scripts/dutree.py +++ b/Tools/scripts/dutree.py @@ -1,31 +1,31 @@ -#! /usr/bin/env python3 +#! /usr/bin/env python # Format du output in a tree shape import os, sys, errno def main(): + p = os.popen('du ' + ' '.join(sys.argv[1:]), 'r') total, d = None, {} - with os.popen('du ' + ' '.join(sys.argv[1:])) as p: - for line in p: - i = 0 - while line[i] in '0123456789': i = i+1 - size = eval(line[:i]) - while line[i] in ' \t': i = i+1 - filename = line[i:-1] - comps = filename.split('/') - if comps[0] == '': comps[0] = '/' - if comps[len(comps)-1] == '': del comps[len(comps)-1] - total, d = store(size, comps, total, d) + for line in p.readlines(): + i = 0 + while line[i] in '0123456789': i = i+1 + size = eval(line[:i]) + while line[i] in ' \t': i = i+1 + filename = line[i:-1] + comps = filename.split('/') + if comps[0] == '': comps[0] = '/' + if comps[len(comps)-1] == '': del comps[len(comps)-1] + total, d = store(size, comps, total, d) try: display(total, d) - except IOError as e: + except IOError, e: if e.errno != errno.EPIPE: raise def store(size, comps, total, d): if comps == []: return size, d - if comps[0] not in d: + if not d.has_key(comps[0]): d[comps[0]] = None, {} t1, d1 = d[comps[0]] d[comps[0]] = store(size, comps[1:], t1, d1) @@ -51,9 +51,9 @@ def show(total, d, prefix): if tsub is None: psub = prefix else: - print(prefix + repr(tsub).rjust(width) + ' ' + key) + print prefix + repr(tsub).rjust(width) + ' ' + key psub = prefix + ' '*(width-1) + '|' + ' '*(len(key)+1) - if key in d: + if d.has_key(key): show(tsub, d[key][1], psub) if __name__ == '__main__': |