Aegisub/devel/tinderbox/buildbot/master/OOCompile.py

64 lines
2.3 KiB
Python

##
# ootermite - OpenOffice.org automated building/reporting system
# Copyright (C) ?
# Copyright (C) 2008 by Sun Microsystems, Inc.
#
# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
import os
from buildbot.steps.shell import ShellCommand
from buildbot.slave.registry import registerSlaveCommand
from buildbot.process.buildstep import LoggedRemoteCommand
from buildbot.steps.transfer import FileUpload
class OOCompile(ShellCommand):
def createSummary(self, log):
try:
logFileName = self.step_status.logs[0].getFilename()
command = "egrep 'warning: |: warning ' "+ logFileName
log = os.popen(command).read()
if log != "" :
self.addCompleteLog('warnings', log)
command = "egrep -B 10 'error: |: fatal error ' "+ logFileName
log = os.popen(command).read()
if log != "":
self.addCompleteLog('errors', log)
except:
print "cannot execute createSummary after OOCompile"
def __init__(self, **kwargs):
OOShellCommand.__init__(self, **kwargs) # always upcall!
def start(self):
ShellCommand.start(self)
# Overwritten method to allow HTML-Log-Files
def setupLogfiles(self, cmd, logfiles):
print "setupLogfiles"
for logname,remotefilename in logfiles.items():
if remotefilename.endswith(".html"):
# tell the BuildStepStatus to add a LogFile
newlog = self.addHTMLLog(logname)
# and tell the LoggedRemoteCommand to feed it
cmd.useLog(newlog, True)