From ed7e16230175a0b8b256ab47ec1fb6f9de79d43a Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Fri, 24 Mar 2006 16:37:52 +0000 Subject: Added a new script that enables use of Ledger as a smart "du". --- scripts/ledger-du | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 scripts/ledger-du (limited to 'scripts/ledger-du') 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) -- cgit v1.2.3