Exemple #1
0
        static void RunAllTemplates()
        {
            #region Find all CSX templates
            Console.WriteLine(string.Format("Searching for Templates..."));
            DirectoryInfo di      = new DirectoryInfo(Environment.CurrentDirectory);
            FileInfo[]    scripts = new FileInfo[0];
            while (scripts.Length == 0 && di.Parent != null)
            {
                if (System.IO.Directory.Exists(System.IO.Path.Combine(di.FullName, "Templates")))
                {
                    scripts = di.GetFiles("Templates\\*.csx");
                }
                di = di.Parent;
            }
            if (scripts.Length == 0)
            {
                Console.WriteLine(string.Format("Can't find Templates folder"));
                Console.ReadLine();
                Environment.Exit(-1);
            }
            #endregion

            // Any dummy path is fine as long as we only use BuildAction.GenerateOnly (so Scripty don't need to manipulate csproj file)
            var scripty = new Scripty.Core.ScriptEngine("C:\\dummy");

            foreach (var script in scripts)
            {
                Console.Write(string.Format("Regenerating {0}...", script.FullName));
                var result = scripty.Evaluate(new Scripty.Core.ScriptSource(script.FullName, File.ReadAllText(script.FullName))).Result;
                Console.WriteLine(string.Format("done! ({0} file(s): {1})", result.OutputFiles.Count, string.Join(", ", result.OutputFiles.Select(o => o.FilePath))));
            }
        }
Exemple #2
0
 static void FindAndRunTemplate()
 {
     #region Find CSPROJ, SLN, CSX
     DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory);
     string        csProj = null; string sln = null; string csx = null;
     string        csProjName  = "EntityFramework-Scripty-Templates.csproj";
     string        slnProjName = "EntityFramework-Scripty-Templates.sln";
     string        csxName     = "Templates\\GenerateEFModel.csx";
     while ((csProj == null || sln == null || csx == null) && di.Parent != null)
     {
         if (System.IO.File.Exists(System.IO.Path.Combine(di.FullName, csProjName)))
         {
             csProj = System.IO.Path.Combine(di.FullName, csProjName);
         }
         if (System.IO.File.Exists(System.IO.Path.Combine(di.FullName, slnProjName)))
         {
             sln = System.IO.Path.Combine(di.FullName, slnProjName);
         }
         if (System.IO.File.Exists(System.IO.Path.Combine(di.FullName, csxName)))
         {
             csx = System.IO.Path.Combine(di.FullName, csxName);
         }
         di = di.Parent;
     }
     #endregion
     var scripty = new Scripty.Core.ScriptEngine(csProj);
     var result  = scripty.Evaluate(new Scripty.Core.ScriptSource(csx, File.ReadAllText(csx))).Result;
 }