2007-03-06 Miguel de Icaza <miguel@novell.com>
[mono.git] / mcs / tools / prj2make / PrjHelper.cs
index 68ec395ffc51a6f10616c46ce6175aae21ad9eeb..c7c7dfb611fc1ea1558ce9c35422c63dff39b998 100644 (file)
-// Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>\r
-// All rights reserved.\r
-//\r
-using System;\r
-using System.Xml;\r
-using System.Xml.Serialization;\r
-using System.Collections;\r
-using System.IO;\r
-using System.Text;\r
-using System.Text.RegularExpressions;\r
-using Mfconsulting.General.Prj2Make.Schema.Prjx;\r
-using Mfconsulting.General.Prj2Make.Schema.Csproj;\r
-\r
-namespace Mfconsulting.General.Prj2Make\r
-{\r
-    public class Maker\r
-    {\r
-       public enum TypeOfFile {\r
-               unknown,\r
-                       sln,\r
-                       csproj,\r
-                       cmbx,\r
-                       prjx                     \r
-               }\r
-               \r
-               // Helper function to determine the type of\r
-               // file being parsed based on its extension\r
-               protected TypeOfFile DetermineFileType(string inFileName)\r
-               {\r
-                       string ExtentionString = System.IO.Path.GetExtension (inFileName);\r
-                       \r
-                       switch(ExtentionString)\r
-                       {\r
-                       case ".sln":\r
-                               return TypeOfFile.sln;\r
-                       case ".csproj":\r
-                               return TypeOfFile.csproj;\r
-                       case ".cmbx":\r
-                               return TypeOfFile.cmbx;\r
-                       case ".prjx":\r
-                               return TypeOfFile.prjx;\r
-                       }               \r
-                       \r
-                       return TypeOfFile.unknown;\r
-               }\r
-\r
-               public bool CreateCombineFromSln(string slnFileName)\r
-               {\r
-                       SlnMaker slnMkObj = new SlnMaker();\r
-\r
-                       // Load the sln and parse it\r
-                       slnMkObj.MsSlnToCmbxHelper(slnFileName);\r
-\r
-                       return false;\r
-               }\r
-     \r
-               public bool CreatePrjxFromCsproj(string csprojFileName)\r
-               {\r
-                       SlnMaker slnMkObj = new SlnMaker();\r
-\r
-                       // Load the csproj and parse it\r
-                       slnMkObj.CreatePrjxFromCsproj(csprojFileName);\r
-\r
-                       return false;\r
-               }\r
-     \r
-       // Main entry point for Makefile generation\r
-               public string MakerMain(bool isUnixMode, bool isMcsMode, string slnFile)\r
-       {\r
-               SlnMaker mk1Obj = null;\r
-               CmbxMaker mk2Obj = null;\r
-            // Test to see what kind if file we got\r
-            // sln, csproj, cmbx, prjx\r
-            switch(DetermineFileType(slnFile))\r
-            {\r
-            case TypeOfFile.sln:\r
-               mk1Obj = new SlnMaker();\r
-               return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, true, slnFile);\r
-            case TypeOfFile.csproj:\r
-               mk1Obj = new SlnMaker();\r
-               return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, false, slnFile);\r
-            case TypeOfFile.cmbx:\r
-               mk2Obj = new CmbxMaker();\r
-               return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, true, slnFile);\r
-            case TypeOfFile.prjx:\r
-               mk2Obj = new CmbxMaker();\r
-               return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, false, slnFile);\r
-            }\r
-               return "Error: unknown file type.";\r
-               }\r
-    }    \r
-}\r
+// Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>
+// All rights reserved.
+//
+using System;
+using System.Xml;
+using System.Xml.Serialization;
+using System.Collections;
+using System.IO;
+using System.Text;
+using System.Text.RegularExpressions;
+using Mfconsulting.General.Prj2Make.Schema.Prjx;
+using Mfconsulting.General.Prj2Make.Schema.Csproj;
+
+namespace Mfconsulting.General.Prj2Make
+{
+       public class Utils {
+           public static string Escape (string s)
+           {
+                   if (s.IndexOf (' ') == -1)
+                           return s;
+
+                   StringBuilder sb = new StringBuilder ();
+                   foreach (char c in s){
+                           if (c == ' ')
+                                   sb.Append ('\\');
+                           sb.Append (c);
+                   }
+                   return sb.ToString ();
+           }
+           
+               
+       }
+       
+    public class Maker
+    {
+       public enum TypeOfFile {
+               unknown,
+                       sln,
+                       csproj,
+                       cmbx,
+                       prjx                     
+               }
+               
+               // Helper function to determine the type of
+               // file being parsed based on its extension
+               protected TypeOfFile DetermineFileType(string inFileName)
+               {
+                       string ExtentionString = System.IO.Path.GetExtension (inFileName);
+                       
+                       switch(ExtentionString)
+                       {
+                       case ".sln":
+                               return TypeOfFile.sln;
+                       case ".csproj":
+                               return TypeOfFile.csproj;
+                       case ".cmbx":
+                               return TypeOfFile.cmbx;
+                       case ".prjx":
+                               return TypeOfFile.prjx;
+                       }               
+                       
+                       return TypeOfFile.unknown;
+               }
+
+               public bool CreateCombineFromSln(string slnFileName)
+               {
+                       SlnMaker slnMkObj = new SlnMaker();
+
+                       // Load the sln and parse it
+                       slnMkObj.MsSlnToCmbxHelper(slnFileName);
+
+                       return false;
+               }
+     
+               public bool CreatePrjxFromCsproj(string csprojFileName)
+               {
+                       SlnMaker slnMkObj = new SlnMaker();
+
+                       // Load the csproj and parse it
+                       slnMkObj.CreatePrjxFromCsproj(csprojFileName);
+
+                       return false;
+               }
+     
+       // Main entry point for Makefile generation
+               public string MakerMain(bool isUnixMode, bool isMcsMode, string slnFile)
+       {
+               SlnMaker mk1Obj = null;
+               CmbxMaker mk2Obj = null;
+            // Test to see what kind if file we got
+            // sln, csproj, cmbx, prjx
+            switch(DetermineFileType(slnFile))
+            {
+            case TypeOfFile.sln:
+               mk1Obj = new SlnMaker();
+               return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, true, slnFile);
+            case TypeOfFile.csproj:
+               mk1Obj = new SlnMaker();
+               return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, false, slnFile);
+            case TypeOfFile.cmbx:
+               mk2Obj = new CmbxMaker();
+               return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, true, slnFile);
+            case TypeOfFile.prjx:
+               mk2Obj = new CmbxMaker();
+               return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, false, slnFile);
+            }
+               return "Error: unknown file type.";
+               }
+    }    
+}