#
# BusyB, an automated build utility.
#
# Copyright (C) 1997-2005
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
import os
import time
from BusyBException import BusyBException
#
# Take output and put it in html format.
#
class HTMLWriter:
def __init__(self, stream, title=None ):
self.f = stream
self.quote = 0
if title:
self.f.write( "<html>\n" )
self.f.write( "<head>\n" )
self.f.write( "<title>" )
self.f.write( title )
self.f.write( "</title>" )
self.f.write( "</head>\n" )
self.f.write( "<h1>" )
self.f.write( title )
self.f.write( "</h1>\n" )
self.flush()
def close(self):
self.flush()
self.f.close()
def write(self, str, style=''):
if ( style == 'i' ):
self.f.write("<i>")
elif ( style == 'b' ):
self.f.write("<b>")
self.f.write( self.toHtml(str) )
if ( style == 'i' ):
self.f.write("</i>")
elif ( style == 'b' ):
self.f.write("</b>")
def writeln( self, str='' ):
self.f.write( self.toHtml(str) )
self.f.write( "<br>\n" )
def writeFileRef( self, text, file ):
self.f.write( '<a href="' + file + '">' )
self.f.write( self.toHtml(text) )
self.f.write( '</a>' )
def flush(self):
self.f.flush()
def rule(self):
self.f.write( "<hr>\n" )
def startTable(self, percentSize=100, border=1):
self.f.write( "<table width=" )
self.f.write( str(percentSize) )
self.f.write( "% border=" )
self.f.write( str(border) )
self.f.write( ">\n" )
def endTable(self):
self.f.write( "</table>\n" )
def startRow( self ):
self.f.write( "<tr valign=top>\n" )
def endRow( self ):
self.f.write( "</tr>\n" )
def startCell( self, width=None ):
self.f.write( "<td" )
if width != None:
self.f.write( " width=" )
self.f.write( str(width) )
self.f.write( "%" )
self.f.write( ">\n" )
def endCell( self ):
self.f.write( "</td>\n" )
def startFontColor( self, color ):
self.f.write( "<font color=" )
self.f.write( color )
self.f.write( ">" )
def endFontColor( self ):
self.f.write( "</font>" )
def paragraph(self):
self.f.write( "<p>\n" )
def startQuote(self):
self.f.write( "<pre>\n" )
self.quote = 1
def endQuote(self):
self.f.write( "</pre>\n" )
self.quote = 0
self.flush()
def toHtml(self, str):
ret = str.expandtabs()
ret = ret.replace( '&', '&' )
ret = ret.replace( '<', '<' )
ret = ret.replace( '>', '>' )
ret = ret.replace( '"', '"' )
ret = ret.replace( "\n", "<br>" )
return ret
def timeStamp(self, msg=None):
if not self.quote:
self.f.write( '[' )
self.f.write( time.ctime() )
self.f.write( '] ' )
if msg:
self.writeln( msg )
#f=open("/tmp/foo.html", "w")
#w=HTMLWriter( f, "MY title" )
#w.rule()
#
#w.startTable(100, 0 )
#w.startRow()
#w.startCell(20)
#w.write( "first Cell" )
#w.endCell()
#w.startCell(80)
#w.close()
#f=open("/tmp/foo.html", "a")
#w=HTMLWriter(f)
#w.writeln( "Second cell, longer than the first" )
#w.startFontColor( 'ff0000' )
#w.writeln( "Second lineee, longer than the first" )
#w.endFontColor()
#w.endCell()
#w.endRow()
#w.endTable()
#
#w.writeln( "simple writeln" )
#w.timeStamp()
#w.writeln( "simple writeln with timestamp" )
#
|