List<MultipleChoice> choices = new ArrayList<MultipleChoice>();
choices.add(new MultipleChoice(1,"Do you want foo?"));
choices.add(new MultipleChoice(2,"Do you want bar?"));
final MultipleChoiceCommand choice =
new MultipleChoiceCommand(exampleConsole, "choice", choices);
Completion completer = new Completion() {
@Override
public void complete(CompleteOperation co) {
// very simple completor
List<String> commands = new ArrayList<String>();
if(co.getBuffer().equals("fo") || co.getBuffer().equals("foo")) {
commands.add("foo");
commands.add("foobaa");
commands.add("foobar");
commands.add("foobaxxxxxx");
commands.add("foobbx");
commands.add("foobcx");
commands.add("foobdx");
}
else if(co.getBuffer().equals("fooba")) {
commands.add("foobaa");
commands.add("foobar");
commands.add("foobaxxxxxx");
}
else if(co.getBuffer().equals("foobar")) {
commands.add("foobar");
}
else if(co.getBuffer().equals("bar")) {
commands.add("bar/");
}
else if(co.getBuffer().equals("h")) {
commands.add("help.history");
commands.add("help");
}
else if(co.getBuffer().equals("help")) {
commands.add("help.history");
commands.add("help");
}
else if(co.getBuffer().equals("help.")) {
commands.add("help.history");
}
else if(co.getBuffer().equals("deploy")) {
commands.add("deploy /home/blabla/foo/bar/alkdfe/en/to/tre");
}
co.setCompletionCandidates(commands);
}
};
exampleConsole.addCompletion(completer);
exampleConsole.addCompletion(man);
exampleConsole.addCompletion(less);
exampleConsole.addCompletion(more);
exampleConsole.setPrompt(new Prompt("[test@foo]~> "));
//exampleConsole.pushToConsole(ANSI.greenText());
//while ((consoleOutput = exampleConsole.read("[test@foo.bar]~> ")) != null) {
exampleConsole.setConsoleCallback(new ConsoleCallback() {
@Override
public int readConsoleOutput(ConsoleOutput consoleOutput) throws IOException {
String line = consoleOutput.getBuffer();
exampleConsole.pushToStdOut("======>\"" + line + "\"\n");
if (line.equalsIgnoreCase("quit") || line.equalsIgnoreCase("exit") ||
line.equalsIgnoreCase("reset")) {
exampleConsole.stop();
}
if(line.equals("clear"))
exampleConsole.clear();
if(line.startsWith("man")) {
//exampleConsole.attachProcess(test);
//man.setCurrentManPage("test");
try {
man.setFile("/tmp/test.txt.gz");
man.attach(consoleOutput);
}
catch (IllegalArgumentException iae) {
exampleConsole.pushToStdOut(iae.getMessage());
}
}
if(line.startsWith("choice")) {
choice.attach(consoleOutput);
}
if(line.trim().startsWith("less")) {
//is it getting input from pipe
if(consoleOutput.getStdOut() != null &&
consoleOutput.getStdOut().length() > 0) {