You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by tu...@apache.org on 2012/07/02 20:23:16 UTC

svn commit: r1356389 - in /incubator/oozie/trunk: client/src/main/java/org/apache/oozie/cli/CLIParser.java client/src/main/java/org/apache/oozie/cli/OozieCLI.java release-log.txt tools/src/main/java/org/apache/oozie/tools/OozieDBCLI.java

Author: tucu
Date: Mon Jul  2 18:23:14 2012
New Revision: 1356389

URL: http://svn.apache.org/viewvc?rev=1356389&view=rev
Log:
OOZIE-898 Oozie help [subcommand] should only print help for that subcommand (rkanter via tucu)

Modified:
    incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/CLIParser.java
    incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
    incubator/oozie/trunk/release-log.txt
    incubator/oozie/trunk/tools/src/main/java/org/apache/oozie/tools/OozieDBCLI.java

Modified: incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/CLIParser.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/CLIParser.java?rev=1356389&r1=1356388&r2=1356389&view=diff
==============================================================================
--- incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/CLIParser.java (original)
+++ incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/CLIParser.java Mon Jul  2 18:23:14 2012
@@ -27,6 +27,8 @@ import java.util.Map;
 import java.util.LinkedHashMap;
 import java.text.MessageFormat;
 import java.io.PrintWriter;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * Command line parser based on Apache common-cli 1.x that supports subcommands.
@@ -125,13 +127,15 @@ public class CLIParser {
     }
 
     public String shortHelp() {
-        return "use 'help' sub-command for help details";
+        return "use 'help [sub-command]' for help details";
     }
 
     /**
      * Print the help for the parser to standard output.
+     * 
+     * @param commandLine the command line
      */
-    public void showHelp() {
+    public void showHelp(CommandLine commandLine) {
         PrintWriter pw = new PrintWriter(System.out);
         pw.println("usage: ");
         for (String s : cliHelp) {
@@ -139,14 +143,21 @@ public class CLIParser {
         }
         pw.println();
         HelpFormatter formatter = new HelpFormatter();
-        for (Map.Entry<String, Options> entry : commands.entrySet()) {
-            String s = LEFT_PADDING + cliName + " " + entry.getKey() + " ";
-            if (entry.getValue().getOptions().size() > 0) {
-                pw.println(s + "<OPTIONS> " + commandsHelp.get(entry.getKey()));
-                formatter.printOptions(pw, 100, entry.getValue(), s.length(), 3);
+        Set<String> commandsToPrint = commands.keySet();
+        String[] args = commandLine.getArgs();
+        if (args.length > 0 && commandsToPrint.contains(args[0])) {
+            commandsToPrint = new HashSet<String>();
+            commandsToPrint.add(args[0]);
+        }
+        for (String comm : commandsToPrint) {
+            Options opts = commands.get(comm);
+            String s = LEFT_PADDING + cliName + " " + comm + " ";
+            if (opts.getOptions().size() > 0) {
+                pw.println(s + "<OPTIONS> " + commandsHelp.get(comm));
+                formatter.printOptions(pw, 100, opts, s.length(), 3);
             }
             else {
-                pw.println(s + commandsHelp.get(entry.getKey()));
+                pw.println(s + commandsHelp.get(comm));
             }
             pw.println();
         }

Modified: incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java?rev=1356389&r1=1356388&r2=1356389&view=diff
==============================================================================
--- incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java (original)
+++ incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java Mon Jul  2 18:23:14 2012
@@ -381,7 +381,7 @@ public class OozieCLI {
         used = true;
 
         final CLIParser parser = new CLIParser(OOZIE_OPTION, getCLIHelp());
-        parser.addCommand(HELP_CMD, "", "display usage", new Options(), false);
+        parser.addCommand(HELP_CMD, "", "display usage for all commands or specified command", new Options(), false);
         parser.addCommand(VERSION_CMD, "", "show client version", new Options(), false);
         parser.addCommand(JOB_CMD, "", "job operations", createJobOptions(), false);
         parser.addCommand(JOBS_CMD, "", "jobs status", createJobsOptions(), false);
@@ -430,7 +430,7 @@ public class OozieCLI {
 
     private void processCommand(CLIParser parser, CLIParser.Command command) throws Exception {
         if (command.getName().equals(HELP_CMD)) {
-            parser.showHelp();
+            parser.showHelp(command.getCommandLine());
         }
         else if (command.getName().equals(JOB_CMD)) {
             jobCommand(command.getCommandLine());

Modified: incubator/oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/release-log.txt?rev=1356389&r1=1356388&r2=1356389&view=diff
==============================================================================
--- incubator/oozie/trunk/release-log.txt (original)
+++ incubator/oozie/trunk/release-log.txt Mon Jul  2 18:23:14 2012
@@ -1,5 +1,6 @@
 -- Oozie 3.3.0 release (trunk - unreleased)
 
+OOZIE-898 Oozie help [subcommand] should only print help for that subcommand (rkanter via tucu)
 OOZIE-895 Oozie Hive-action should use Hive var replacement (rkanter via tucu)
 OOZIE-888 Change default logging levels for oozieops and hadoop.security.authentication.server to INFO from DEBUG (rkanter via tucu)
 OOZIE-896 TestFsActionExecutor.java failing (britt via virag)

Modified: incubator/oozie/trunk/tools/src/main/java/org/apache/oozie/tools/OozieDBCLI.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/tools/src/main/java/org/apache/oozie/tools/OozieDBCLI.java?rev=1356389&r1=1356388&r2=1356389&view=diff
==============================================================================
--- incubator/oozie/trunk/tools/src/main/java/org/apache/oozie/tools/OozieDBCLI.java (original)
+++ incubator/oozie/trunk/tools/src/main/java/org/apache/oozie/tools/OozieDBCLI.java Mon Jul  2 18:23:14 2012
@@ -83,7 +83,7 @@ public class OozieDBCLI {
         used = true;
 
         CLIParser parser = new CLIParser("ooziedb.sh", HELP_INFO);
-        parser.addCommand(HELP_CMD, "", "display usage", new Options(), false);
+        parser.addCommand(HELP_CMD, "", "display usage for all commands or specified command", new Options(), false);
         parser.addCommand(VERSION_CMD, "", "show Oozie DB version information", new Options(), false);
         parser.addCommand(CREATE_CMD, "", "create Oozie DB schema", createUpgradeOptions(), false);
         parser.addCommand(UPGRADE_CMD, "", "upgrade Oozie DB", createUpgradeOptions(), false);
@@ -93,7 +93,7 @@ public class OozieDBCLI {
             System.out.println();
             CLIParser.Command command = parser.parse(args);
             if (command.getName().equals(HELP_CMD)) {
-                parser.showHelp();
+                parser.showHelp(command.getCommandLine());
             }
             else if (command.getName().equals(VERSION_CMD)) {
                 showVersion();