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
@override
Future<int> run(Iterable<String> args) async => await super.run(args) ?? 0;