public abstract Task <int> ExecuteAsync(CommandContext ctx, T settigs, VeinProject project);
public override int Execute(CommandContext context, CompileSettings settings, VeinProject project) { Log.Info($"Project [orange]'{project.Name}'[/]."); var targets = CompilationTask.Run(project.WorkDir, settings); foreach (var info in targets.SelectMany(x => x.Logs.Info).Reverse()) { MarkupLine(info.TrimEnd('\n')); } foreach (var info in Log.infos) { MarkupLine(info.TrimEnd('\n')); } if (new[] { Log.errors.Count, targets.Sum(x => x.Logs.Error.Count) }.Sum() > 0) { var rule1 = new Rule($"[yellow]{Log.errors.Count} error found[/]") { Style = Style.Parse("red rapidblink") }; Write(rule1); } foreach (var target in targets.SelectMany(x => x.Logs.Error).Reverse()) { MarkupLine(target); } foreach (var error in Log.errors) { MarkupLine(error); } if (new[] { Log.warnings.Count, targets.Sum(x => x.Logs.Warn.Count) }.Sum() > 0) { var rule2 = new Rule($"[yellow]{Log.warnings.Count} warning found[/]") { Style = Style.Parse("orange rapidblink") }; Write(rule2); } foreach (var warn in targets.SelectMany(x => x.Logs.Warn).Reverse()) { MarkupLine(warn); } foreach (var warn in Log.warnings) { MarkupLine(warn); } if (!Log.warnings.Any() && !Log.errors.Any()) { MarkupLine($"\n\n\n"); } if (new[] { Log.errors.Count, targets.Sum(x => x.Logs.Error.Count) }.Sum() > 0) { var rule3 = new Rule($"[red bold]COMPILATION FAILED[/]") { Style = Style.Parse("lime rapidblink") }; Write(rule3); MarkupLine($"\n"); return(-1); } else { var rule3 = new Rule($"[green bold]COMPILATION SUCCESS[/]") { Style = Style.Parse("lime rapidblink") }; Write(rule3); MarkupLine($"\n"); return(0); } }
public sealed override int Execute(CommandContext ctx, T settigs, VeinProject project) => ExecuteAsync(ctx, settigs, project).Result;
public abstract int Execute(CommandContext ctx, T settigs, VeinProject project);