__author__ = 'Deepak Sarda'
__version__ = '0.5'
__copyright__ = '(c) 2005 Deepak Sarda'
__license__ = 'Public Domain'
__url__ = 'http://www.antrix.net/'
import sys
from os import path
import time
UPDATE_DELAY = 0.8
TIMEOUT = 10
if len(sys.argv) != 2:
print "Usage: $ %s file_to_track" % sys.argv[0]
raise SystemExit
fullname = sys.argv[1]
if not path.isfile(fullname):
print "%s is not a valid file!" % fullname
raise SystemExit
def getSize(_file):
"""getSize(filename) -> string\n\nReturns size of file. Human readability
of returned string given more importance than accuracy."""
bytes = path.getsize(_file)
if bytes > 1024*1024:
mbytes = bytes/(1024*1024)
bytes -= mbytes*1024*1024
if bytes > 1024:
kbytes = bytes/1024
return '%d.%d megabytes' % (mbytes,kbytes)
else:
return '%d megabytes' % mbytes
if bytes > 1024:
kbytes = bytes/1024
bytes -= kbytes*1024
if bytes:
return '%d.%d kilobytes' % (kbytes,bytes)
else:
return '%d kilobytes' % kbytes
return '%d bytes' % bytes
basename, filename = path.split(fullname)
sys.stdout.write(filename)
bars = ['-','\\','|','/']
i = 0
while 1:
try:
size = getSize(fullname)
msg = ' %s %s' % (bars[i%4], size)
sys.stdout.write(msg)
sys.stdout.flush()
time.sleep(UPDATE_DELAY)
sys.stdout.write('\b'*len(msg))
i += 1
if time.time() - path.getctime(fullname) > TIMEOUT:
print "\n%s hasn't changed in %d seconds." % (filename, TIMEOUT)
break
except:
print
break