Author: billie
Date: Wed May  2 20:02:01 2012
New Revision: 1333178

URL: http://svn.apache.org/viewvc?rev=1333178&view=rev
Log:
ACCUMULO-376 organized shell commands

Modified:
    
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
    
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java
    
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java

Modified: 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java?rev=1333178&r1=1333177&r2=1333178&view=diff
==============================================================================
--- 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
 (original)
+++ 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
 Wed May  2 20:02:01 2012
@@ -167,6 +167,7 @@ public class Shell extends ShellOptions 
   
   private Token rootToken;
   public final Map<String,Command> commandFactory = new 
TreeMap<String,Command>();
+  public final Map<String,Command[]> commandGrouping = new 
TreeMap<String,Command[]>();
   protected boolean configError = false;
   
   // exit if true
@@ -279,18 +280,42 @@ public class Shell extends ShellOptions 
     }
     
     rootToken = new Token();
-    Command external[] = {new AboutCommand(), new AddSplitsCommand(), new 
AuthenticateCommand(), new ByeCommand(), new ClasspathCommand(), new 
ClearCommand(),
-        new CloneTableCommand(), new ClsCommand(), new CompactCommand(), new 
ConfigCommand(), new CreateTableCommand(), new CreateUserCommand(),
-        new DebugCommand(), new DeleteCommand(), new DeleteIterCommand(), new 
DeleteManyCommand(), new DeleteRowsCommand(), new DeleteScanIterCommand(),
-        new DeleteTableCommand(), new DeleteUserCommand(), new 
DropTableCommand(), new DropUserCommand(), new DUCommand(), new EGrepCommand(),
-        new ExecfileCommand(), new ExitCommand(), new FlushCommand(), new 
FormatterCommand(), new GetAuthsCommand(), new GetGroupsCommand(),
-        new GetSplitsCommand(), new GrantCommand(), new GrepCommand(), new 
HelpCommand(), new HiddenCommand(), new HistoryCommand(),
-        new ImportDirectoryCommand(), new InfoCommand(), new InsertCommand(), 
new ListIterCommand(), new ListScansCommand(), new MaxRowCommand(),
-        new MergeCommand(), new NoTableCommand(), new OfflineCommand(), new 
OnlineCommand(), new PasswdCommand(), new QuestionCommand(), new QuitCommand(),
-        new RenameTableCommand(), new RevokeCommand(), new ScanCommand(), new 
SetAuthsCommand(), new SetGroupsCommand(), new SetIterCommand(),
-        new SetScanIterCommand(), new SleepCommand(), new 
SystemPermissionsCommand(), new TableCommand(), new TablePermissionsCommand(), 
new TablesCommand(),
-        new TraceCommand(), new UserCommand(), new UserPermissionsCommand(), 
new UsersCommand(), new WhoAmICommand(),};
-    for (Command cmd : external) {
+    
+    Command[] dataCommands = {new DeleteCommand(), new DeleteManyCommand(), 
new DeleteRowsCommand(), new EGrepCommand(), new FormatterCommand(),
+        new GrepCommand(), new ImportDirectoryCommand(), new InsertCommand(), 
new MaxRowCommand(), new ScanCommand()};
+    Command[] debuggingCommands = {new ClasspathCommand(), new DebugCommand(), 
new ListScansCommand(), new TraceCommand()};
+    Command[] execCommands = {new ExecfileCommand(), new HistoryCommand()};
+    Command[] exitCommands = {new ByeCommand(), new ExitCommand(), new 
QuitCommand()};
+    Command[] helpCommands = {new AboutCommand(), new HelpCommand(), new 
InfoCommand(), new QuestionCommand()};
+    Command[] iteratorCommands = {new DeleteIterCommand(), new 
DeleteScanIterCommand(), new ListIterCommand(), new SetIterCommand(), new 
SetScanIterCommand()};
+    Command[] otherCommands = {new HiddenCommand()};
+    Command[] permissionsCommands = {new GrantCommand(), new RevokeCommand(), 
new SystemPermissionsCommand(), new TablePermissionsCommand(),
+        new UserPermissionsCommand()};
+    Command[] stateCommands = {new AuthenticateCommand(), new ClsCommand(), 
new ClearCommand(), new NoTableCommand(), new SleepCommand(), new 
TableCommand(),
+        new UserCommand(), new WhoAmICommand()};
+    Command[] tableCommands = {new CloneTableCommand(), new ConfigCommand(), 
new CreateTableCommand(), new DeleteTableCommand(), new DropTableCommand(),
+        new DUCommand(), new OfflineCommand(), new OnlineCommand(), new 
RenameTableCommand(), new TablesCommand()};
+    Command[] tableControlCommands = {new AddSplitsCommand(), new 
CompactCommand(), new FlushCommand(), new GetGroupsCommand(), new 
GetSplitsCommand(),
+        new MergeCommand(), new SetGroupsCommand()};
+    Command[] userCommands = {new CreateUserCommand(), new 
DeleteUserCommand(), new DropUserCommand(), new GetAuthsCommand(), new 
PasswdCommand(),
+        new SetAuthsCommand(), new UsersCommand()};
+    commandGrouping.put("-- Writing, Reading, and Removing Data --", 
dataCommands);
+    commandGrouping.put("-- Debugging Commands -------------------", 
debuggingCommands);
+    commandGrouping.put("-- Shell Execution Commands -------------", 
execCommands);
+    commandGrouping.put("-- Exiting Commands ---------------------", 
exitCommands);
+    commandGrouping.put("-- Help Commands ------------------------", 
helpCommands);
+    commandGrouping.put("-- Iterator Configuration ---------------", 
iteratorCommands);
+    commandGrouping.put("-- Permissions Administration Commands --", 
permissionsCommands);
+    commandGrouping.put("-- Shell State Commands -----------------", 
stateCommands);
+    commandGrouping.put("-- Table Administration Commands --------", 
tableCommands);
+    commandGrouping.put("-- Table Control Commands ---------------", 
tableControlCommands);
+    commandGrouping.put("-- User Administration Commands ---------", 
userCommands);
+    
+    for (Command[] cmds : commandGrouping.values()) {
+      for (Command cmd : cmds)
+        commandFactory.put(cmd.getName(), cmd);
+    }
+    for (Command cmd : otherCommands) {
       commandFactory.put(cmd.getName(), cmd);
     }
   }
@@ -574,11 +599,13 @@ public class Shell extends ShellOptions 
     options.put(Command.CompletionSet.TABLENAMES, modifiedTablenames);
     options.put(Command.CompletionSet.COMMANDS, commands);
     
-    for (Command c : commandFactory.values()) {
-      c.getOptionsWithHelp(); // prep the options for the command
-      // so that the completion can
-      // include them
-      c.registerCompletion(rootToken, options);
+    for (Command[] cmdGroup : commandGrouping.values()) {
+      for (Command c : cmdGroup) {
+        c.getOptionsWithHelp(); // prep the options for the command
+        // so that the completion can
+        // include them
+        c.registerCompletion(rootToken, options);
+      }
     }
     return new ShellCompletor(rootToken, options);
   }

Modified: 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java?rev=1333178&r1=1333177&r2=1333178&view=diff
==============================================================================
--- 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java
 (original)
+++ 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HelpCommand.java
 Wed May  2 20:02:01 2012
@@ -19,6 +19,7 @@ package org.apache.accumulo.core.util.sh
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 
 import org.apache.accumulo.core.util.shell.Shell;
@@ -46,8 +47,9 @@ public class HelpCommand extends Command
       if (numColumns < 40)
         throw new IllegalArgumentException("numColumns must be at least 40 
(was " + numColumns + ")");
       ArrayList<String> output = new ArrayList<String>();
-      for (Command c : shellState.commandFactory.values()) {
-        if (!(c instanceof HiddenCommand)) {
+      for (Entry<String,Command[]> cmdGroup : 
shellState.commandGrouping.entrySet()) {
+        output.add(cmdGroup.getKey());
+        for (Command c : cmdGroup.getValue()) {
           String n = c.getName();
           String s = c.description();
           if (s == null)
@@ -76,6 +78,7 @@ public class HelpCommand extends Command
           }
           output.add(String.format("%-" + i + "s  %s  %s", n, dash, 
s.substring(beginIndex, endIndex)));
         }
+        output.add("");
       }
       shellState.printLines(output.iterator(), 
!cl.hasOption(disablePaginationOpt.getOpt()));
     }

Modified: 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java?rev=1333178&r1=1333177&r2=1333178&view=diff
==============================================================================
--- 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java
 (original)
+++ 
accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/HiddenCommand.java
 Wed May  2 20:02:01 2012
@@ -20,10 +20,11 @@ import java.security.SecureRandom;
 import java.util.Random;
 
 import org.apache.accumulo.core.util.shell.Shell;
-import org.apache.accumulo.core.util.shell.ShellCommandException;
 import org.apache.accumulo.core.util.shell.Shell.Command;
+import org.apache.accumulo.core.util.shell.ShellCommandException;
 import org.apache.accumulo.core.util.shell.ShellCommandException.ErrorCode;
 import org.apache.commons.cli.CommandLine;
+import org.apache.commons.codec.binary.Base64;
 
 public class HiddenCommand extends Command {
   private static Random rand = new SecureRandom();
@@ -38,7 +39,10 @@ public class HiddenCommand extends Comma
     if (rand.nextInt(10) == 0) {
       shellState.getReader().beep();
       shellState.getReader().printNewline();
-      shellState.getReader().printString("Sortacus lives!\n");
+      shellState.getReader().printString(
+          new 
String(Base64.decodeBase64(("ICAgICAgIC4tLS4KICAgICAgLyAvXCBcCiAgICAgKCAvLS1cICkKICAgICAuPl8gIF88LgogICAgLyB8ICd8ICcgXAog"
+              + 
"ICAvICB8Xy58Xy4gIFwKICAvIC98ICAgICAgfFwgXAogfCB8IHwgfFwvfCB8IHwgfAogfF98IHwgfCAgfCB8IHxffAogICAgIC8gIF9fICBcCiAgICAvICAv"
+              + 
"ICBcICBcCiAgIC8gIC8gICAgXCAgXF8KIHwvICAvICAgICAgXCB8IHwKIHxfXy8gICAgICAgIFx8X3wK").getBytes())));
       shellState.getReader().printNewline();
     } else
       throw new ShellCommandException(ErrorCode.UNRECOGNIZED_COMMAND, 
getName());
@@ -53,6 +57,6 @@ public class HiddenCommand extends Comma
   
   @Override
   public String getName() {
-    return "\0\0\0\0";
+    return new String("accvmvlo");
   }
 }


Reply via email to