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();
}
}
}