예제 #1
0
        public ScriptInfo BuildEntryPointScript(string scriptDir, string buildDir)
        {
            var script = new ScriptInfo();

            try
            {
                script = FindEntryPoint(scriptDir, buildDir);
                if (script == null)
                {
                    return(null);
                }

                Dump(script, true);

                var entryPointFileText = StripNamespaces(GetFileText(script.SourcePath));
                var builtScriptText    = new StringBuilder(entryPointFileText);

                var paths = GetOtherSourcePaths(script);
                foreach (var path in paths)
                {
                    var sourceFileText = GetFileText(path);
                    builtScriptText.Append(Environment.NewLine + Environment.NewLine + StripNamespaces(sourceFileText));
                    Dump($"Included contents of {Path.GetFileName(path)}");
                }
                using (var writer = new StreamWriter(script.BuiltPath, false))
                {
                    var usingsProcessed = ArrangeUsingStatements(builtScriptText.ToString());
                    writer.WriteLine(usingsProcessed);
                }
                script.Success = true;
            }
            catch (Exception e)
            {
                script.Error = ErrorFormatter.Format(e);
            }
            return(script);
        }