--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/bin/fixmeta.py Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,81 @@
+#
+# Copyright (c) 2007-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:
+# fixmeta
+#
+
+"""
+ Correct bld.infs, mmps etc to the point where it can be read by the build system
+ Currently it:
+ Corrects '\' in include statements to '/'
+
+ Author: Tim Murphy, with a nod to Peter Harper's fixslashes.pl
+"""
+
+import sys
+import os
+import re
+from optparse import OptionParser
+
+
+includeslash_re = re.compile('#include.*\\\\')
+mmpfile_re = re.compile(".*\.mm[hp]$", re.I)
+bldinf_re = re.compile(".*bld\.inf$", re.I)
+
+def fixincludeslash(m):
+ return m.group(0).replace('\\','/')
+
+
+def checkconvert(dirname, filename):
+ tofilename=dirname + "/" + filename+".converted"
+ fromfilename = dirname + "/" + filename
+ fromfile = open(fromfilename,"r")
+
+ conversions = False
+ fromtext = fromfile.read()
+ (totext, subcount) = re.subn(includeslash_re, fixincludeslash, fromtext)
+
+ if subcount != 0:
+ print '"%s", %d backslash includes\n' % (fromfilename, subcount)
+ tofile = open( tofilename,"w")
+ tofile.write(totext)
+ tofile.close()
+
+ fromfile.close()
+ if subcount != 0:
+ os.rename(fromfilename,fromfilename+".wrongslash")
+ os.rename(tofilename,fromfilename)
+
+
+
+def visit(arg, dirname, names):
+ #print "dir: %s\n" % (dirname)
+ for f in names:
+ m = mmpfile_re.match(f)
+ b = bldinf_re.match(f)
+ if m != None or b != None:
+ #print "\t"+f
+ checkconvert(dirname, f)
+
+parser = OptionParser(prog = "fixmeta",
+ usage = "%prog [-h | options] sourcepath containing files to be fixed.")
+
+(options, args) = parser.parse_args()
+
+if len(args) == 0:
+ print "Need at least one argument: a path to the source which is to be fixed."
+ sys.exit(-1)
+
+print "Walking\n"
+os.path.walk(args[0],visit,None)