run method
Parses args
and invokes Command.run
on the chosen command.
This always returns a Future in case the command is asynchronous. The
Future will throw a UsageException
if args
was invalid.
Implementation
Future<T?> run(Iterable<String> args) =>
Future.sync(() => runCommand(parse(args)));