diff options
author | Matthew Harmsen <mharmsen@redhat.com> | 2014-04-25 19:55:35 -0700 |
---|---|---|
committer | Matthew Harmsen <mharmsen@redhat.com> | 2014-04-29 14:19:36 -0700 |
commit | 7b6b60b7d8d26799ea1bda48e6e51fa05854c80e (patch) | |
tree | e51a0d515e8a9a2b9f80dee491fca5217054adf5 /base/java-tools/src/com/netscape/cmstools/logging | |
parent | 05fea2520ae50d74f18017b26f5d58936e29af07 (diff) | |
download | pki-7b6b60b7d8d26799ea1bda48e6e51fa05854c80e.tar.gz pki-7b6b60b7d8d26799ea1bda48e6e51fa05854c80e.tar.xz pki-7b6b60b7d8d26799ea1bda48e6e51fa05854c80e.zip |
Fixed issue by streamlining code to be more consistent.
* PKI TRAC Ticket #843 - Incorrect CLI argument parsing
Diffstat (limited to 'base/java-tools/src/com/netscape/cmstools/logging')
4 files changed, 67 insertions, 37 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java index 705c7b764..8020b8464 100644 --- a/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java @@ -18,6 +18,7 @@ package com.netscape.cmstools.logging; +import java.util.Arrays; import java.util.Collection; import org.apache.commons.cli.CommandLine; @@ -38,14 +39,15 @@ public class ActivityFindCLI extends CLI { public ActivityFindCLI(ActivityCLI activityCLI) { super("find", "Find activities", activityCLI); this.activityCLI = activityCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [FILTER] [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { Option option = new Option(null, "start", true, "Page start"); option.setArgName("start"); options.addOption(option); @@ -53,6 +55,15 @@ public class ActivityFindCLI extends CLI { option = new Option(null, "size", true, "Page size"); option.setArgName("size"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -62,13 +73,7 @@ public class ActivityFindCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); - } - - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); diff --git a/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java index 091cf361c..ea0d69fec 100644 --- a/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java @@ -20,6 +20,8 @@ package com.netscape.cmstools.logging; import java.util.Arrays; +import org.apache.commons.cli.CommandLine; + import com.netscape.certsrv.logging.ActivityData; import com.netscape.cmstools.cli.CLI; import com.netscape.cmstools.cli.MainCLI; @@ -37,21 +39,34 @@ public class ActivityShowCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " <Activity ID>", options); + formatter.printHelp(getFullName() + " <Activity ID> [OPTIONS...]", options); } public void execute(String[] args) throws Exception { - - // Check for "--help" + // Always check for "--help" prior to parsing if (Arrays.asList(args).contains("--help")) { // Display usage printHelp(); System.exit(0); } - if (args.length != 1) { + CommandLine cmd = null; + + try { + cmd = parser.parse(options, args); + + } catch (Exception e) { + System.err.println("Error: " + e.getMessage()); + printHelp(); + System.exit(-1); + } + + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 1) { + System.err.println("Error: No Activity ID specified."); printHelp(); - System.exit(1); + System.exit(-1); } String activityID = args[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java index 26411d11c..a69eeb52a 100644 --- a/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java @@ -43,21 +43,15 @@ public class AuditModifyCLI extends CLI { public AuditModifyCLI(AuditCLI auditCLI) { super("mod", "Modify audit configuration", auditCLI); this.auditCLI = auditCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - - // Check for "--help" prior to parsing due to required option - if (Arrays.asList(args).contains("--help")) { - // Display usage - printHelp(); - System.exit(0); - } - + public void createOptions() { Option option = new Option(null, "action", true, "Action: update (default), enable, disable."); option.setArgName("action"); options.addOption(option); @@ -69,6 +63,15 @@ public class AuditModifyCLI extends CLI { option = new Option(null, "output", true, "Output file to store audit configuration."); option.setArgName("file"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -78,14 +81,15 @@ public class AuditModifyCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } String action = cmd.getOptionValue("action", "update"); @@ -99,7 +103,7 @@ public class AuditModifyCLI extends CLI { if (input == null) { System.err.println("Error: Input file is required."); printHelp(); - System.exit(1); + System.exit(-1); } try (BufferedReader in = new BufferedReader(new FileReader(input)); diff --git a/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java index f82510e42..34f708c72 100644 --- a/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java @@ -20,6 +20,7 @@ package com.netscape.cmstools.logging; import java.io.FileWriter; import java.io.PrintWriter; +import java.util.Arrays; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -38,17 +39,27 @@ public class AuditShowCLI extends CLI { public AuditShowCLI(AuditCLI auditCLI) { super("show", "Show audit configuration", auditCLI); this.auditCLI = auditCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName(), options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { Option option = new Option(null, "output", true, "Output file to store audit configuration."); option.setArgName("file"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -58,20 +69,15 @@ public class AuditShowCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); - } - - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } String output = cmd.getOptionValue("output"); |