summaryrefslogtreecommitdiffstats
path: root/base/java-tools/src/com/netscape/cmstools/cert/CertShowCLI.java
diff options
context:
space:
mode:
authorMatthew Harmsen <mharmsen@redhat.com>2014-04-25 19:55:35 -0700
committerMatthew Harmsen <mharmsen@redhat.com>2014-04-29 14:19:36 -0700
commit7b6b60b7d8d26799ea1bda48e6e51fa05854c80e (patch)
treee51a0d515e8a9a2b9f80dee491fca5217054adf5 /base/java-tools/src/com/netscape/cmstools/cert/CertShowCLI.java
parent05fea2520ae50d74f18017b26f5d58936e29af07 (diff)
downloadpki-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/cert/CertShowCLI.java')
-rw-r--r--base/java-tools/src/com/netscape/cmstools/cert/CertShowCLI.java32
1 files changed, 19 insertions, 13 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertShowCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertShowCLI.java
index d4867422a..febc4a494 100644
--- a/base/java-tools/src/com/netscape/cmstools/cert/CertShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/cert/CertShowCLI.java
@@ -20,6 +20,7 @@ package com.netscape.cmstools.cert;
import java.io.FileWriter;
import java.io.PrintWriter;
+import java.util.Arrays;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Option;
@@ -39,20 +40,30 @@ public class CertShowCLI extends CLI {
public CertShowCLI(CertCLI certCLI) {
super("show", "Show certificate", certCLI);
this.certCLI = certCLI;
+
+ createOptions();
}
public void printHelp() {
formatter.printHelp(getFullName() + " <Serial Number> [OPTIONS...]", options);
}
- public void execute(String[] args) throws Exception {
-
+ public void createOptions() {
Option option = new Option(null, "output", true, "Output file");
option.setArgName("file");
options.addOption(option);
options.addOption(null, "pretty", false, "Pretty print");
options.addOption(null, "encoded", false, "Base-64 encoded");
+ }
+
+ 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,25 +73,20 @@ public class CertShowCLI extends CLI {
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
printHelp();
- System.exit(1);
+ System.exit(-1);
}
- if (cmd.hasOption("help")) {
- // Display usage
- printHelp();
- System.exit(0);
- }
-
- boolean showPrettyPrint = cmd.hasOption("pretty");
- boolean showEncoded = cmd.hasOption("encoded");
-
String[] cmdArgs = cmd.getArgs();
if (cmdArgs.length != 1) {
+ System.err.println("Error: Missing Serial Number.");
printHelp();
- System.exit(1);
+ System.exit(-1);
}
+ boolean showPrettyPrint = cmd.hasOption("pretty");
+ boolean showEncoded = cmd.hasOption("encoded");
+
CertId certID = new CertId(cmdArgs[0]);
String file = cmd.getOptionValue("output");