void Invoke(PreprocessedScript script, IEnumerable <TaskDeclaration> declarations) { var result = Build(script, declarations); Initialize(result); var tasks = options.Tasks; if (tasks.Count == 0) { tasks.Add(Options.Task.Default); } foreach (var task in tasks) { TaskRegistry.Invoke(task.Name, task.Arguments); } }
BuildResult Build(PreprocessedScript script, IEnumerable <TaskDeclaration> declarations) { var engine = new Engine( script.References, script.AbsoluteReferences, script.Namespaces ); var cachingEngine = new CachingEngine( engine, script.File, declarations.Select(x => new Task(x)).ToArray(), options.ResetCache ); var result = cachingEngine.Build( script.Code, VariableSubstitutions(), options.DebugScript ); return(result); }
TaskDeclaration[] Scan(PreprocessedScript script) { return(new TaskDeclarationScanner().Scan(script.Code, options.ShowTasks).ToArray()); }