mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +00:00 
			
		
		
		
	 79b334ba55
			
		
	
	
		79b334ba55
		
	
	
	
	
		
			
			\t\t\t\t\treal code ##\t\t\t\t\tunused code \t\t\t\t\treal code via untabifying and shifting the real code left. Semantically the same but made the intent of the commented-out-in-column-0 unused code unclear. The exact same unused code appears to have gotten copied from file to file over the years.
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #! /usr/bin/env python
 | |
| # Format du output in a tree shape
 | |
| 
 | |
| import os, string, sys, errno
 | |
| 
 | |
| def main():
 | |
|     p = os.popen('du ' + string.join(sys.argv[1:]), 'r')
 | |
|     total, d = None, {}
 | |
|     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
 | |
|         file = line[i:-1]
 | |
|         comps = string.splitfields(file, '/')
 | |
|         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, e:
 | |
|         if e.errno != errno.EPIPE:
 | |
|             raise
 | |
| 
 | |
| def store(size, comps, total, d):
 | |
|     if comps == []:
 | |
|         return size, 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)
 | |
|     return total, d
 | |
| 
 | |
| def display(total, d):
 | |
|     show(total, d, '')
 | |
| 
 | |
| def show(total, d, prefix):
 | |
|     if not d: return
 | |
|     list = []
 | |
|     sum = 0
 | |
|     for key in d.keys():
 | |
|         tsub, dsub = d[key]
 | |
|         list.append((tsub, key))
 | |
|         if tsub is not None: sum = sum + tsub
 | |
| ##  if sum < total:
 | |
| ##      list.append((total - sum, os.curdir))
 | |
|     list.sort()
 | |
|     list.reverse()
 | |
|     width = len(`list[0][0]`)
 | |
|     for tsub, key in list:
 | |
|         if tsub is None:
 | |
|             psub = prefix
 | |
|         else:
 | |
|             print prefix + string.rjust(`tsub`, width) + ' ' + key
 | |
|             psub = prefix + ' '*(width-1) + '|' + ' '*(len(key)+1)
 | |
|         if d.has_key(key):
 | |
|             show(tsub, d[key][1], psub)
 | |
| 
 | |
| main()
 |