File: ledger-du

package info (click to toggle)
ledger 2.6.2-3.1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 3,076 kB
  • sloc: cpp: 17,785; sh: 10,246; lisp: 2,167; makefile: 205; python: 53; perl: 11
file content (49 lines) | stat: -rwxr-xr-x 962 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python

import string
import sys
import os
import time

from stat import *
from os.path import *

def report_file(path):
    dir_elems = string.split(dirname(path), os.sep)
    if dir_elems[0] == "." or dir_elems[0] == "":
	dir_elems = dir_elems[1 :]
    account = string.join(dir_elems, ":")

    info = os.stat(path)
    print time.strftime("%Y/%m/%d", time.localtime(info[ST_MTIME])),

    print basename(path)
    print "   ", account, "  ", info[ST_SIZE], "b"
    print "    Equity:Files"
    print

def find_files(path):
    entries = os.listdir(path)
    for entry in entries:
        entry = join(path, entry)
	if not islink(entry):
	    if isdir(entry) and entry != "/proc":
		find_files(entry)
	    else:
		report_file(entry)

args = sys.argv[1:]
if len(args):
    paths = args
else:
    paths = ["."]

print """
C 1.00 Kb = 1024 b
C 1.00 Mb = 1024 Kb
C 1.00 Gb = 1024 Mb
C 1.00 Tb = 1024 Gb
"""

for path in paths:
    find_files(path)