Beispiel #1
0
        public async Task RunAsync(string[] args)
        {
            var tokens          = _tokenizer.Tokenize(Metadata, args).ToArray();
            var commandMetadata = _commandParser.Parse(Metadata, tokens);
            var helpTokenExists = tokens.Any(token => token is HelpOptionToken);

            if (commandMetadata == null)
            {
                if (helpTokenExists)
                {
                    _helpDocs.Print(Metadata);
                }
                else
                {
                    Console.WriteLine("Unknown command.");
                }
                return;
            }
            if (helpTokenExists)
            {
                _helpDocs.Print(commandMetadata);
                return;
            }
            try
            {
                await commandMetadata.Run(tokens);
            }
            catch (ParsingException exception)
            {
                Console.WriteLine(
                    $"Incorrect value \"{exception.Value}\" of {exception.Target.Map()} \"{exception.Name}\".");
            }
            if (_disposeAfterRun == true)
            {
                Dispose();
            }
        }