The CLI module contains a Command-Line Interface (CLI) framework for building your own CLI complete with auto-completion and command-parsing.
To use this CLI framework, you must first define a command:
public class EchoCommand implements Command {
@Override
public void execute(Arguments arguments, PrintStream output) throws Exception {
output.println(arguments.get("some-input"));
}
@Override
public String getPattern() {
return "echo <some-input>";
}
@Override
public String getDescription() {
return "Echoes whatever is passed";
}
}
This will define a command that would match the user input echo something, for
example. In execute(), arguments.get("some-input") would then return
something, because something was matched to <some-input> from the
getPattern() implementation. You can then instantiate a CLI instance and have it
use your command:
public static void main(String[] args) throws IOException {
CLI cli = new CLI<Command>(new EchoCommand());
cli.run(args, System.out);
}
If args is empty, then the CLI will start in interactive mode. This will provide a
shell (similar to bash) from which the user can enter in multiple commands and use
auto-completion.
If args is not empty, then the CLI will assume the args are the parts of a command,
and execute the command. In this example, if args is ["echo", "hello"], then the
CLI will match the input to the EchoCommand command and pass "hello" as the
argument value for the "some-input" argument.