You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bforce/contrib/u-srif/lib/uutil.py

55 lines
1.2 KiB
Python

import string
# Header for the files information
file_info_header = 'File Size Description\n'\
+ '-' * 78
class ULog:
def __init__(self, path):
self.path = path
self.fp = open(path, 'a')
def puts(self, string):
fp.puts(strftime('%b %d %H:%M:%S ', gmtime())+string)
def close(self):
fp.close()
def format_desc(desc, offset, width=78):
""" Format file's description
"""
yield = ''
desc = string.expandtabs(desc, 1)
for line in string.split(desc, '\n'):
line = string.rstrip(line)
if line == '':
continue
pos = 0
endpos = width
while line[pos:endpos]:
if yield:
yield = yield + '\n'
yield = yield + offset * ' '
yield = yield + line[pos:endpos]
pos = endpos
endpos = endpos + width
return yield
def format_file_info(name, size, desc, line_length=78):
""" Format file information to meet human requirements
"""
if size < 0:
yield = '%-20s ' % name + 11 * ' '
else:
yield = '%-20s %-11d' % (name, size)
if desc:
offset = len(yield) + 1
width = line_length - offset
desc = format_desc(desc, offset, width)
yield = yield + ' ' + string.lstrip(desc)
else:
yield = yield + ' Description not available'
return yield