private static async Task RunAsync(this TargetCollection targets, List <string> args, Func <Exception, bool> messageOnly, string logPrefix) { var(names, options) = args.Parse(); var(output, log) = await ConsoleExtensions.Initialize(options, logPrefix).Tax(); await RunAsync(targets, names, options, output, log, messageOnly, args).Tax(); }
private static async Task RunAsync(this TargetCollection targets, List <string> args) { var(names, options) = args.Parse(); var log = await ConsoleExtensions.Initialize(options).ConfigureAwait(false); await RunAsync(targets, names, options, log, _ => false, args).ConfigureAwait(false); }
public static async Task RunAsync(this TargetCollection targets, IEnumerable <string> names, Options options, Func <Exception, bool> messageOnly, string logPrefix, bool exit) { targets = targets ?? new TargetCollection(); var nameList = names.Sanitize().ToList(); options = options ?? new Options(); messageOnly = messageOnly ?? (_ => false); var(output, log) = await ConsoleExtensions.Initialize(options, logPrefix).Tax(); await RunAsync(targets, nameList, options, messageOnly, output, log, exit).Tax(); }
public static async Task RunAsync(this TargetCollection targets, IEnumerable <string> args, Func <Exception, bool> messageOnly, string logPrefix, bool exit) { targets = targets ?? new TargetCollection(); var argList = args.Sanitize().ToList(); messageOnly = messageOnly ?? (_ => false); var(options, names) = Options.Parse(argList); var(output, log) = await ConsoleExtensions.Initialize(options, logPrefix).Tax(); await log.Verbose($"Args: {string.Join(" ", argList)}").Tax(); await RunAsync(targets, names, options, messageOnly, output, log, exit).Tax(); }
private static async Task RunAndExitAsync(this TargetCollection targets, List <string> args, Func <Exception, bool> messageOnly, string logPrefix) { var(names, options) = args.Parse(); var(output, log) = await ConsoleExtensions.Initialize(options, logPrefix).Tax(); try { await RunAsync(targets, names, options, output, log, messageOnly, args).Tax(); } catch (InvalidUsageException ex) { await log.Error(ex.Message).Tax(); Environment.Exit(2); } catch (TargetFailedException) { Environment.Exit(1); } Environment.Exit(0); }