using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using Cosmos.Compiler.XSharp; using EnvDTE; namespace XSharp.XSC { class Program { public static bool Project; static void Main(string[] aArgs) { var xArgs = new string[aArgs.Length]; for (int i = 0; i < xArgs.Length; i++) { xArgs[i] = aArgs[i].ToUpper(); } Project=xArgs.Contains("-PROJECT"); try { string xSrc = aArgs[0]; string xNamespace = aArgs[1]; var xGenerator = new CSharpGenerator(); try { if (Directory.Exists(xSrc))//If a driectory exists, its a directory, else is either a file or non existant. { foreach (string file in Directory.GetFiles(xSrc,"*.xs")) //Loop through all files xGenerator.Execute(xNamespace, file); if (Project) GenerateCSProj(xNamespace,xSrc); } else xGenerator.Execute(xNamespace, xSrc); } catch (Exception ex) { Console.WriteLine(ex.Message); Environment.Exit(1); } } catch (Exception ex) { Console.WriteLine(ex.Message); Environment.Exit(1); } } private static void GenerateCSProj(string xNamespace, string xSrc) { StreamWriter proj = new StreamWriter(Path.Combine(xSrc, xNamespace + ".csproj")); /* $(ToolsDllPath) */ //C:\Users\ADAM\AppData\Roaming\Cosmos User Kit\Build\VSIP\Cosmos.Assembler.dll //C:\Users\ADAM\AppData\Roaming\Cosmos User Kit\Build\VSIP\Cosmos.Assembler.x86.dll string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData, Environment.SpecialFolderOption.None); proj.WriteLine(""); proj.WriteLine(" "); proj.WriteLine(" "+xNamespace+""); proj.WriteLine(" "+xSrc+"\\bin\\"); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "+appdata+@"\Cosmos User Kit\Build\VSIP"); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "+appdata+@"\Cosmos User Kit\Build\VSIP"); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(" "); proj.WriteLine(""); proj.Flush(); proj.Close(); } } }