digitalmars.D.announce - Hunt Console 0.1.0 released
- zoujiaqing (38/38) Jan 31 2019 Hunt Console library eases the creation of beautiful and testable
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/
Jan 31 2019