diff options
author | John Wiegley <johnw@newartisans.com> | 2006-03-24 16:37:52 +0000 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2008-04-13 02:41:31 -0400 |
commit | ed7e16230175a0b8b256ab47ec1fb6f9de79d43a (patch) | |
tree | 32e5b70b9d1ef5e277ac8ca1c4088e26de234cb1 /scripts/ledger-du | |
parent | a5aff9eee967adb8c71ce6fc25db0458d522836e (diff) | |
download | fork-ledger-ed7e16230175a0b8b256ab47ec1fb6f9de79d43a.tar.gz fork-ledger-ed7e16230175a0b8b256ab47ec1fb6f9de79d43a.tar.bz2 fork-ledger-ed7e16230175a0b8b256ab47ec1fb6f9de79d43a.zip |
Added a new script that enables use of Ledger as a smart "du".
Diffstat (limited to 'scripts/ledger-du')
-rwxr-xr-x | scripts/ledger-du | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/ledger-du b/scripts/ledger-du new file mode 100755 index 00000000..f5d7dd7d --- /dev/null +++ b/scripts/ledger-du @@ -0,0 +1,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) |