--- a/sbsv2/raptor/python/plugins/filter_squashlog.py Sun May 16 13:06:27 2010 +0100
+++ b/sbsv2/raptor/python/plugins/filter_squashlog.py Mon May 17 20:20:32 2010 +0100
@@ -1,108 +1,108 @@
-#
-# Copyright (c) 2008-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:
-# Squash a raptor log file by removing commands from successful recipes
-#
-
-import os
-import sys
-import raptor
-import filter_interface
-
-class FilterSquashlog(filter_interface.Filter):
-
- def __init__(self):
- self.__inRecipe = False
-
- def open(self, raptor_instance):
- """Open a log file for the various I/O methods to write to."""
-
- if raptor_instance.logFileName == None:
- self.out = sys.stdout
- else:
- try:
- dirname = str(raptor_instance.logFileName.Dir())
- if dirname and not os.path.isdir(dirname):
- os.makedirs(dirname)
- except:
- sys.stderr.write(str(raptor.name) + \
- ": error: cannot create directory %s\n", dirname)
- return False
-
- try:
- logname = str(raptor_instance.logFileName)
- self.out = open(logname, "w")
- except:
- self.out = None
- sys.stderr.write(str(raptor.name) + \
- ": error: cannot write log %s\n", \
- str(raptor_instance.logFileName))
- return False
-
- return True
-
- def write(self, line):
- """Write text into a squashed log file by removing commands from successful recipes"""
-
- # escape % characters otherwise print will fail
- line = line.replace("%", "%%")
-
- # detect the start of a recipe
- if line.startswith("<recipe "):
- self.__inRecipe = True
- self.__recipeLines = [line]
- self.__squashRecipe = True
- return
-
- # detect the status report from a recipe
- if line.startswith("<status "):
- if not "exit='ok'" in line:
- # only squash ok recipes
- self.__squashRecipe = False
- self.__recipeLines.append(line)
- return
-
- # detect the end of a recipe
- if line.startswith("</recipe>"):
- # print the recipe
- if self.__squashRecipe:
- for text in self.__recipeLines:
- if not text.startswith("+"):
- self.out.write(text)
- else:
- for text in self.__recipeLines:
- self.out.write(text)
-
- self.out.write(line)
- self.__inRecipe = False
- return
-
- # remember the lines during a recipe
- if self.__inRecipe:
- self.__recipeLines.append(line)
- else:
- # print all lines outside a recipe
- self.out.write(line)
-
- return True
-
- def close(self):
- """Close the log file"""
-
- try:
- self.out.close()
- return True
- except:
- self.out = None
- return False
+#
+# Copyright (c) 2008-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:
+# Squash a raptor log file by removing commands from successful recipes
+#
+
+import os
+import sys
+import raptor
+import filter_interface
+
+class FilterSquashlog(filter_interface.Filter):
+
+ def __init__(self):
+ self.__inRecipe = False
+
+ def open(self, raptor_instance):
+ """Open a log file for the various I/O methods to write to."""
+
+ if raptor_instance.logFileName == None:
+ self.out = sys.stdout
+ else:
+ try:
+ dirname = str(raptor_instance.logFileName.Dir())
+ if dirname and not os.path.isdir(dirname):
+ os.makedirs(dirname)
+ except:
+ sys.stderr.write(str(raptor.name) + \
+ ": error: cannot create directory %s\n", dirname)
+ return False
+
+ try:
+ logname = str(raptor_instance.logFileName)
+ self.out = open(logname, "w")
+ except:
+ self.out = None
+ sys.stderr.write(str(raptor.name) + \
+ ": error: cannot write log %s\n", \
+ str(raptor_instance.logFileName))
+ return False
+
+ return True
+
+ def write(self, line):
+ """Write text into a squashed log file by removing commands from successful recipes"""
+
+ # escape % characters otherwise print will fail
+ line = line.replace("%", "%%")
+
+ # detect the start of a recipe
+ if line.startswith("<recipe "):
+ self.__inRecipe = True
+ self.__recipeLines = [line]
+ self.__squashRecipe = True
+ return
+
+ # detect the status report from a recipe
+ if line.startswith("<status "):
+ if not "exit='ok'" in line:
+ # only squash ok recipes
+ self.__squashRecipe = False
+ self.__recipeLines.append(line)
+ return
+
+ # detect the end of a recipe
+ if line.startswith("</recipe>"):
+ # print the recipe
+ if self.__squashRecipe:
+ for text in self.__recipeLines:
+ if not text.startswith("+"):
+ self.out.write(text)
+ else:
+ for text in self.__recipeLines:
+ self.out.write(text)
+
+ self.out.write(line)
+ self.__inRecipe = False
+ return
+
+ # remember the lines during a recipe
+ if self.__inRecipe:
+ self.__recipeLines.append(line)
+ else:
+ # print all lines outside a recipe
+ self.out.write(line)
+
+ return True
+
+ def close(self):
+ """Close the log file"""
+
+ try:
+ self.out.close()
+ return True
+ except:
+ self.out = None
+ return False