64 lines
2.3 KiB
Python
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)
|
|
|