summaryrefslogtreecommitdiff
path: root/scripts/ledger-du
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2006-03-24 16:37:52 +0000
committerJohn Wiegley <johnw@newartisans.com>2008-04-13 02:41:31 -0400
commited7e16230175a0b8b256ab47ec1fb6f9de79d43a (patch)
tree32e5b70b9d1ef5e277ac8ca1c4088e26de234cb1 /scripts/ledger-du
parenta5aff9eee967adb8c71ce6fc25db0458d522836e (diff)
downloadfork-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-xscripts/ledger-du49
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)