コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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);
        }