Hunt Console 0.1.0 released
zoujiaqing
zoujiaqing at gmail.com
Thu Jan 31 19:03:43 UTC 2019
Hunt Console library eases the creation of beautiful and testable
command line interfaces.
It is a port from Symfony's Console component. ( reference here
https://symfony.com/doc/current/console.html )
The Application object manages the command-line application:
import hunt.console;
console = new Application();
console.run(new ArgsInput(args));
The run() method parses the arguments and options passed on the
command line and executes the right command.
Registering a new command can easily be done via the register()
method, which returns a Command instance:
void main(string[] args)
{
Application app = new Application("Hunt Console", "1.0.0");
app.setAutoExit(false);
app.add(new GreetingCommand());
app.add((new Command("test")).setExecutor(new class
CommandExecutor {
override public int execute(Input input, Output output)
{
output.writeln("hello world");
return 0;
}
}));
if(args.length > 1)
app.run(args[1..$]);
else
app.run([]);
}
You can also register new commands via classes.
The component provides a lot of features like output coloring,
input and output abstractions (so that you can easily unit-test
your commands), validation, automatic help messages ...
Github repo:
https://github.com/huntlabs/hunt-console
HuntLabs website:
https://www.huntlabs.net/
More information about the Digitalmars-d-announce
mailing list