Author: gnodet
Date: Thu Sep 23 09:16:28 2010
New Revision: 1000371
URL: http://svn.apache.org/viewvc?rev=1000371&view=rev
Log:
[KARAF-214] print a nice error when a command is not found
Modified:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
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/Main.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java?rev=1000371&r1=1000370&r2=1000371&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
(original)
+++
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
Thu Sep 23 09:16:28 2010
@@ -38,6 +38,7 @@ import org.apache.felix.gogo.commands.Ac
import org.apache.felix.gogo.commands.Command;
import org.apache.felix.gogo.commands.CommandException;
import org.apache.felix.gogo.commands.basic.AbstractCommand;
+import org.apache.felix.gogo.runtime.CommandNotFoundException;
import org.apache.felix.gogo.runtime.CommandProcessorImpl;
import org.apache.felix.gogo.runtime.threadio.ThreadIOImpl;
import org.apache.felix.service.command.CommandSession;
@@ -158,7 +159,16 @@ public class Main {
try {
session.execute(sb);
} catch (Throwable t) {
- if (t instanceof CommandException) {
+ if (t instanceof CommandNotFoundException) {
+ String str = Ansi.ansi()
+ .fg(Ansi.Color.RED)
+ .a("Command not found: ")
+ .a(Ansi.Attribute.INTENSITY_BOLD)
+ .a(((CommandNotFoundException) t).getCommand())
+ .a(Ansi.Attribute.INTENSITY_BOLD_OFF)
+ .fg(Ansi.Color.DEFAULT).toString();
+ session.getConsole().println(str);
+ } else if (t instanceof CommandException) {
session.getConsole().println(((CommandException)
t).getNiceHelp());
} else {
session.getConsole().print(Ansi.ansi().fg(Ansi.Color.RED).toString());
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=1000371&r1=1000370&r2=1000371&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 Sep 23 09:16:28 2010
@@ -42,6 +42,7 @@ import jline.UnsupportedTerminal;
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.service.command.CommandProcessor;
import org.apache.felix.service.command.CommandSession;
import org.apache.felix.service.command.Converter;
@@ -197,13 +198,22 @@ public class Console implements Runnable
session.put(LAST_EXCEPTION, t);
if (t instanceof CommandException) {
session.getConsole().println(((CommandException)
t).getNiceHelp());
+ } else if (t instanceof CommandNotFoundException) {
+ String str = Ansi.ansi()
+ .fg(Ansi.Color.RED)
+ .a("Command not found: ")
+ .a(Ansi.Attribute.INTENSITY_BOLD)
+ .a(((CommandNotFoundException) t).getCommand())
+ .a(Ansi.Attribute.INTENSITY_BOLD_OFF)
+ .fg(Ansi.Color.DEFAULT).toString();
+ session.getConsole().println(str);
}
if ( isPrintStackTraces()) {
session.getConsole().print(Ansi.ansi().fg(Ansi.Color.RED).toString());
t.printStackTrace(session.getConsole());
session.getConsole().print(Ansi.ansi().fg(Ansi.Color.DEFAULT).toString());
}
- else if (!(t instanceof CommandException)) {
+ else if (!(t instanceof CommandException) && !(t
instanceof CommandNotFoundException)) {
session.getConsole().print(Ansi.ansi().fg(Ansi.Color.RED).toString());
session.getConsole().println("Error executing command:
"
+ (t.getMessage() != null ? t.getMessage() :
t.getClass().getName()));