buildframework/helium/tools/common/python/scripts/sbsscanlogmetadata.py
changeset 628 7c4a911dc066
parent 588 c7c26511138f
child 629 541af5ee3ed9
--- a/buildframework/helium/tools/common/python/scripts/sbsscanlogmetadata.py	Wed Jun 16 16:51:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-#============================================================================ 
-#Name        : sbsscanlogmetadata.py
-#Part of     : Helium 
-
-#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-#All rights reserved.
-#This component and the accompanying materials are made available
-#under the terms of the License "Eclipse Public License v1.0"
-#which accompanies this distribution, and is available
-#at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-#Initial Contributors:
-#Nokia Corporation - initial contribution.
-#
-#Contributors:
-#
-#Description:
-#===============================================================================
-"""parses the raptor metadata logs and separates the info out into HTML and XML
-   logs for writing to diamonds and other logs"""
-    
-import os
-import sys
-import re
-import datetime
-from optparse import OptionParser
-
-
-IGNORE_TEXT_REG_EX = "warning: no newline at end of file"
-
-STREAM_REGEX =  {   "clean" : [r'<clean', r'</clean'],
-                    "what" : [r'<whatlog', r'</whatlog'],
-                    "warning" : [r'<warning', r'</warning']
-                }
-
-class SBSScanlogMetadata(object):
-    """parses the raptor metadata logs and separates the info out into HTML and 
-    XML logs for writing to diamonds and other logs"""
-
-    def initializeLogPath(self):
-        """retrieve the log file names from the environment variables """
-        index = self.logFileName.rfind(".")
-        if index < 0:
-            index = len(self.logFileName)
-        for stream in STREAM_REGEX.keys():
-            self.stream_path[stream] = self.logFileName[:index] + "." + stream + \
-                        self.logFileName[index:]
-        if os.environ.has_key('SBS_CLEAN_LOG_FILE'):
-            self.stream_path['clean'] = os.environ['SBS_CLEAN_LOG_FILE']
-        if os.environ.has_key('SBS_WHAT_LOG_FILE'):
-            self.stream_path['what'] = os.environ['SBS_WHAT_LOG_FILE']
-            
-    def initialize(self, logFile):
-        """Initialize helium log filter"""
-        self.ignoreTextCompileObject = re.compile(IGNORE_TEXT_REG_EX);
-        self.logFileName = str(logFile)
-        self.streamStatus = {}
-        self.streams = {}
-        self.stream_path = {}
-        self.start_time = datetime.datetime.now()
-        self.loggerout = open(self.logFileName,"w")
-        self.compiled_stream_object = {}
-        print "logName: %s\n" % self.logFileName
-        self.initializeLogPath()
-        for stream in STREAM_REGEX.keys():
-            self.compiled_stream_object[stream] = []
-            self.streams[stream] = open(self.stream_path[stream], "w")
-            self.streamStatus[stream] = False
-            self.streams[stream].write(\
-"""<?xml version="1.0" encoding="ISO-8859-1" ?>
-<buildlog sbs_version="" xmlns="http://symbian.com/xml/build/log" xmlns:progress="http://symbian.com/xml/build/log/progress" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build/log http://symbian.com/xml/build/log/1_0.xsd">""")
-            for  searchString in STREAM_REGEX[stream]:
-                self.compiled_stream_object[stream].append(re.compile(searchString))
-        return True
-
-    def open(self, logFile):
-        """ open the log file"""
-        self.logFileName = str(logFile)
-        return self.initialize(logFile)
-        
-        
-    def write(self, text):
-        """ callback function which is to process the logs"""
-        stream_list = STREAM_REGEX.keys()
-        for textLine in text.splitlines():
-            textLine = textLine + '\n'
-            if textLine.startswith("<?xml ") or textLine.startswith("<buildlog ") \
-                or textLine.startswith("</buildlog"):
-                self.loggerout.write(textLine)
-                continue
-            if(self.ignoreTextCompileObject.search(textLine)):
-                continue
-            for stream in stream_list:
-                if( (not self.streamStatus[stream]) and self.compiled_stream_object[stream][0].search(textLine)!= None):
-                    self.streamStatus[stream] = True
-                if (self.streamStatus[stream] and self.compiled_stream_object[stream][1].search(textLine)!= None):
-                    self.streams[stream].write(textLine)
-                    self.streamStatus[stream] = False
-                    break
-    
-                if(self.streamStatus[stream]):
-                    if textLine.startswith("<?xml ") or textLine.startswith("<buildlog ") \
-                        or textLine.startswith("</buildlog"):
-                        continue
-                    self.streams[stream].write(textLine)
-                    break
-
-            self.loggerout.write(textLine)
-        return True
-        
-    def summary(self):
-        """Write Summary"""
-        sys.stdout.write("sbs: build log in %s\n" % str(self.logFileName))
-        return False
-
-    def close(self):
-        """Close the log file"""
-
-        try:
-            self.loggerout.close()
-            for stream in self.streams.keys():
-                self.streams[stream].write('</buildlog>')
-                self.streams[stream].close()
-            return True
-        except:
-            self.loggerout = None
-            self.streams = None
-        return False
-
-if __name__ == "__main__":
-    # standalone app
-    _cli = OptionParser(usage="%prog [options]")
-    _cli.add_option("--log", help="Raptor log file")
-    _cli.add_option("--output", help="Raptor log file")
-                   
-    _opts, _ = _cli.parse_args()
-    if not _opts.log:
-        _cli.print_help()
-        sys.exit(-1)
-
-    _sbsFilter = SBSScanlogMetadata()
-    _sbsFilter.open(_opts.output)
-
-    _logFile = open(_opts.log, 'r')
-
-    for line in _logFile:
-        _sbsFilter.write(line)
-
-    _sbsFilter.summary()
-    _sbsFilter.close()
\ No newline at end of file