From 611419fcd8a19c06ca651add93deb66bdd0c55d5 Mon Sep 17 00:00:00 2001 From: Matthew Harmsen Date: Wed, 16 Apr 2014 18:38:10 -0700 Subject: CLI argument parsing and bad return codes * PKI TRAC Ticket #843 - Incorrect CLI argument parsing * PKI TRAC Ticket #918 - CLI commands does not return code '1' for the failures --- .../src/com/netscape/cmstools/key/KeyArchiveCLI.java | 5 ++++- .../src/com/netscape/cmstools/key/KeyFindCLI.java | 4 +++- .../src/com/netscape/cmstools/key/KeyGenerateCLI.java | 13 ++++++++----- .../src/com/netscape/cmstools/key/KeyModifyCLI.java | 14 +++++++++----- .../src/com/netscape/cmstools/key/KeyRecoverCLI.java | 4 +++- .../src/com/netscape/cmstools/key/KeyRequestFindCLI.java | 3 ++- .../com/netscape/cmstools/key/KeyRequestReviewCLI.java | 15 ++++++++++----- .../src/com/netscape/cmstools/key/KeyRequestShowCLI.java | 13 +++++++++---- .../src/com/netscape/cmstools/key/KeyRetrieveCLI.java | 4 +++- .../src/com/netscape/cmstools/key/KeyShowCLI.java | 13 +++++++++---- .../src/com/netscape/cmstools/key/KeyTemplateFindCLI.java | 4 +++- .../src/com/netscape/cmstools/key/KeyTemplateShowCLI.java | 13 ++++++++----- 12 files changed, 71 insertions(+), 34 deletions(-) (limited to 'base/java-tools/src/com/netscape/cmstools/key') diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyArchiveCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyArchiveCLI.java index c057a9e0f..49ffe71de 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyArchiveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyArchiveCLI.java @@ -53,10 +53,13 @@ public class KeyArchiveCLI extends CLI { printHelp(); System.exit(1); } + if (cmd.hasOption("help")) { + // Display usage printHelp(); - System.exit(1); + System.exit(0); } + String requestFile = cmd.getOptionValue("input"); KeyRequestResponse response = null; diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyFindCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyFindCLI.java index e2b8ef8c2..43310aa1d 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyFindCLI.java @@ -81,9 +81,11 @@ public class KeyFindCLI extends CLI { printHelp(); System.exit(1); } + if (cmd.hasOption("help")) { + // Display usage printHelp(); - System.exit(1); + System.exit(0); } String clientKeyID = cmd.getOptionValue("client"); diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyGenerateCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyGenerateCLI.java index 0ec02d519..3a2aa86e1 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyGenerateCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyGenerateCLI.java @@ -25,6 +25,14 @@ public class KeyGenerateCLI extends CLI { } public void execute(String[] args) { + + // Check for "--help" prior to parsing due to required option + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } + Option option = new Option(null, "key-algorithm", true, "Algorithm to be used to create a key.\nValid values: AES, DES, DES3, RC2, RC4, DESede."); option.setArgName("algorithm"); @@ -55,11 +63,6 @@ public class KeyGenerateCLI extends CLI { System.exit(1); } - if (cmd.hasOption("help")) { - printHelp(); - System.exit(1); - } - String[] cmdArgs = cmd.getArgs(); if (cmdArgs.length < 1) { System.err.println("Error: Missing the Client Key Id"); diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyModifyCLI.java index 483cc23ab..437808084 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyModifyCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyModifyCLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.key; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.ParseException; @@ -40,6 +42,13 @@ public class KeyModifyCLI extends CLI { public void execute(String[] args) { + // Check for "--help" prior to parsing due to required option + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } + Option option = new Option(null, "status", true, "Status of the key.\nValid values: active, inactive"); option.setRequired(true); option.setArgName("status"); @@ -55,11 +64,6 @@ public class KeyModifyCLI extends CLI { System.exit(1); } - if (cmd.hasOption("help")) { - printHelp(); - System.exit(1); - } - String status = cmd.getOptionValue("status"); if (status == null) { System.out.println("No status:: " + status); diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyRecoverCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyRecoverCLI.java index d12e76a08..cdaf6b66c 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRecoverCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRecoverCLI.java @@ -51,9 +51,11 @@ public class KeyRecoverCLI extends CLI { } if (cmd.hasOption("help")) { + // Display usage printHelp(); - System.exit(1); + System.exit(0); } + String requestFile = cmd.getOptionValue("input"); KeyRequestResponse response = null; diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestFindCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestFindCLI.java index 96a4dfab4..20451042a 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestFindCLI.java @@ -88,8 +88,9 @@ public class KeyRequestFindCLI extends CLI { } if (cmd.hasOption("help")) { + // Display usage printHelp(); - System.exit(1); + System.exit(0); } String status = cmd.getOptionValue("status"); diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestReviewCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestReviewCLI.java index bf17fb21e..5464625fc 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestReviewCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestReviewCLI.java @@ -1,5 +1,7 @@ package com.netscape.cmstools.key; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.ParseException; @@ -22,6 +24,14 @@ public class KeyRequestReviewCLI extends CLI { } public void execute(String[] args) { + + // Check for "--help" prior to parsing due to required option + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } + Option option = new Option(null, "action", true, "Action to be performed on the request.\nValid values: approve, reject, cancel."); option.setArgName("Action to perform"); @@ -38,11 +48,6 @@ public class KeyRequestReviewCLI extends CLI { System.exit(1); } - if (cmd.hasOption("help")) { - printHelp(); - System.exit(1); - } - String[] cmdArgs = cmd.getArgs(); if (cmdArgs.length != 1) { System.err.println("Error: Invalid arguments provided."); diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestShowCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestShowCLI.java index 7f615eb03..0459fa759 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestShowCLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.key; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.ParseException; @@ -40,6 +42,13 @@ public class KeyRequestShowCLI extends CLI { public void execute(String[] args) { + // Check for "--help" + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } + if (args.length != 1) { printHelp(); System.exit(-1); @@ -53,10 +62,6 @@ public class KeyRequestShowCLI extends CLI { printHelp(); System.exit(1); } - if (cmd.hasOption("help")) { - printHelp(); - System.exit(1); - } RequestId requestId = new RequestId(args[0].trim()); diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java index 0621c3cef..095595f78 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java @@ -60,9 +60,11 @@ public class KeyRetrieveCLI extends CLI { printHelp(); System.exit(1); } + if (cmd.hasOption("help")) { + // Display usage printHelp(); - System.exit(1); + System.exit(0); } if(cmd.getOptions().length==0){ diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyShowCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyShowCLI.java index a3d918e47..172f24934 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyShowCLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.key; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.ParseException; @@ -40,6 +42,13 @@ public class KeyShowCLI extends CLI { public void execute(String[] args) { + // Check for "--help" + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } + if (args.length != 1) { printHelp(); System.exit(-1); @@ -53,10 +62,6 @@ public class KeyShowCLI extends CLI { printHelp(); System.exit(1); } - if (cmd.hasOption("help")) { - printHelp(); - System.exit(1); - } KeyId keyId = new KeyId(args[0].trim()); diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateFindCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateFindCLI.java index 18fd53cdd..5fc869dee 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateFindCLI.java @@ -40,9 +40,11 @@ public class KeyTemplateFindCLI extends CLI { printHelp(); System.exit(1); } + if (cmd.hasOption("help")) { + // Display usage printHelp(); - System.exit(1); + System.exit(0); } try { diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateShowCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateShowCLI.java index 2ce8afe83..6e7365256 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateShowCLI.java @@ -3,6 +3,7 @@ package com.netscape.cmstools.key; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.util.Arrays; import javax.xml.bind.JAXBException; @@ -30,6 +31,13 @@ public class KeyTemplateShowCLI extends CLI { public void execute(String[] args) { + // Check for "--help" + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } + Option option = new Option(null, "output-file", true, "Location where the template has to be stored."); option.setArgName("File to write the template to."); options.addOption(option); @@ -49,11 +57,6 @@ public class KeyTemplateShowCLI extends CLI { System.exit(-1); } - if (cmd.hasOption("help")) { - printHelp(); - System.exit(1); - } - String templateId = cmdArgs[0]; String writeToFile = cmd.getOptionValue("output-file"); String templateDir = "/usr/share/pki/key/templates/"; -- cgit