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()));


Reply via email to