You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2011/03/31 09:09:00 UTC
svn commit: r1087201 -
/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
Author: gnodet
Date: Thu Mar 31 07:09:00 2011
New Revision: 1087201
URL: http://svn.apache.org/viewvc?rev=1087201&view=rev
Log:
[KARAF-542] Support of next line with '>' character
Modified:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java?rev=1087201&r1=1087200&r2=1087201&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java Thu Mar 31 07:09:00 2011
@@ -35,14 +35,14 @@ import java.util.concurrent.BlockingQueu
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import jline.AnsiWindowsTerminal;
-import jline.console.ConsoleReader;
import jline.Terminal;
import jline.UnsupportedTerminal;
+import jline.console.ConsoleReader;
import jline.console.history.FileHistory;
import jline.console.history.PersistentHistory;
import org.apache.felix.gogo.commands.CommandException;
import org.apache.felix.gogo.runtime.CommandNotFoundException;
+import org.apache.felix.gogo.runtime.Parser;
import org.apache.felix.service.command.CommandProcessor;
import org.apache.felix.service.command.CommandSession;
import org.apache.felix.service.command.Converter;
@@ -208,14 +208,35 @@ public class Console implements Runnable
}
while (running) {
try {
- checkInterrupt();
- String line = reader.readLine(getPrompt());
- if (line == null)
- {
+ String command = null;
+ boolean loop = true;
+ boolean first = true;
+ while (loop) {
+ checkInterrupt();
+ String line = reader.readLine(first ? getPrompt() : "> ");
+ if (line == null)
+ {
+ break;
+ }
+ if (command == null) {
+ command = line;
+ } else {
+ command += " " + line;
+ }
+ reader.getHistory().replace(command);
+ try {
+ new Parser(command).program();
+ loop = false;
+ } catch (Exception e) {
+ loop = true;
+ first = false;
+ }
+ }
+ if (command == null) {
break;
}
//session.getConsole().println("Executing: " + line);
- Object result = session.execute(line);
+ Object result = session.execute(command);
if (result != null)
{
session.getConsole().println(session.format(result, Converter.INSPECT));