From 7b6b60b7d8d26799ea1bda48e6e51fa05854c80e Mon Sep 17 00:00:00 2001 From: Matthew Harmsen Date: Fri, 25 Apr 2014 19:55:35 -0700 Subject: Fixed issue by streamlining code to be more consistent. * PKI TRAC Ticket #843 - Incorrect CLI argument parsing --- .../com/netscape/cmstools/cert/CertFindCLI.java | 189 +++++++++++---------- .../com/netscape/cmstools/cert/CertHoldCLI.java | 28 +-- .../netscape/cmstools/cert/CertReleaseHoldCLI.java | 28 +-- .../netscape/cmstools/cert/CertRequestFindCLI.java | 85 ++++----- .../cmstools/cert/CertRequestProfileFindCLI.java | 27 ++- .../cmstools/cert/CertRequestProfileShowCLI.java | 34 ++-- .../cmstools/cert/CertRequestReviewCLI.java | 34 ++-- .../netscape/cmstools/cert/CertRequestShowCLI.java | 27 +-- .../cmstools/cert/CertRequestSubmitCLI.java | 22 +-- .../com/netscape/cmstools/cert/CertRevokeCLI.java | 30 ++-- .../com/netscape/cmstools/cert/CertShowCLI.java | 32 ++-- .../src/com/netscape/cmstools/cli/HelpCLI.java | 2 +- .../src/com/netscape/cmstools/cli/MainCLI.java | 8 +- .../cmstools/client/ClientCertFindCLI.java | 29 +++- .../cmstools/client/ClientCertImportCLI.java | 31 +++- .../cmstools/client/ClientCertRemoveCLI.java | 22 ++- .../netscape/cmstools/client/ClientInitCLI.java | 29 +++- .../com/netscape/cmstools/group/GroupAddCLI.java | 24 +-- .../com/netscape/cmstools/group/GroupFindCLI.java | 23 ++- .../netscape/cmstools/group/GroupMemberAddCLI.java | 25 ++- .../cmstools/group/GroupMemberFindCLI.java | 32 ++-- .../cmstools/group/GroupMemberRemoveCLI.java | 25 ++- .../cmstools/group/GroupMemberShowCLI.java | 25 ++- .../netscape/cmstools/group/GroupModifyCLI.java | 27 +-- .../netscape/cmstools/group/GroupRemoveCLI.java | 25 ++- .../com/netscape/cmstools/group/GroupShowCLI.java | 25 ++- .../com/netscape/cmstools/key/KeyArchiveCLI.java | 28 ++- .../src/com/netscape/cmstools/key/KeyFindCLI.java | 25 ++- .../com/netscape/cmstools/key/KeyGenerateCLI.java | 35 ++-- .../com/netscape/cmstools/key/KeyModifyCLI.java | 32 ++-- .../com/netscape/cmstools/key/KeyRecoverCLI.java | 28 ++- .../netscape/cmstools/key/KeyRequestFindCLI.java | 25 ++- .../netscape/cmstools/key/KeyRequestReviewCLI.java | 32 ++-- .../netscape/cmstools/key/KeyRequestShowCLI.java | 17 +- .../com/netscape/cmstools/key/KeyRetrieveCLI.java | 30 +++- .../src/com/netscape/cmstools/key/KeyShowCLI.java | 20 ++- .../netscape/cmstools/key/KeyTemplateFindCLI.java | 20 ++- .../netscape/cmstools/key/KeyTemplateShowCLI.java | 21 ++- .../netscape/cmstools/logging/ActivityFindCLI.java | 23 ++- .../netscape/cmstools/logging/ActivityShowCLI.java | 25 ++- .../netscape/cmstools/logging/AuditModifyCLI.java | 28 +-- .../netscape/cmstools/logging/AuditShowCLI.java | 28 +-- .../netscape/cmstools/profile/ProfileAddCLI.java | 23 +-- .../cmstools/profile/ProfileDisableCLI.java | 25 ++- .../cmstools/profile/ProfileEnableCLI.java | 25 ++- .../netscape/cmstools/profile/ProfileFindCLI.java | 27 ++- .../cmstools/profile/ProfileModifyCLI.java | 23 +-- .../cmstools/profile/ProfileRemoveCLI.java | 25 ++- .../netscape/cmstools/profile/ProfileShowCLI.java | 34 ++-- .../cmstools/selftests/SelfTestFindCLI.java | 23 ++- .../cmstools/selftests/SelfTestRunCLI.java | 21 ++- .../cmstools/selftests/SelfTestShowCLI.java | 28 +-- .../cmstools/system/KRAConnectorAddCLI.java | 21 +-- .../cmstools/system/KRAConnectorRemoveCLI.java | 25 ++- .../system/SecurityDomainGetInstallTokenCLI.java | 28 +-- .../cmstools/system/SecurityDomainShowCLI.java | 21 ++- .../cmstools/system/TPSConnectorAddCLI.java | 25 ++- .../cmstools/system/TPSConnectorFindCLI.java | 25 ++- .../cmstools/system/TPSConnectorModCLI.java | 27 ++- .../cmstools/system/TPSConnectorRemoveCLI.java | 25 ++- .../cmstools/system/TPSConnectorShowCLI.java | 33 ++-- .../tps/authenticator/AuthenticatorAddCLI.java | 24 +-- .../tps/authenticator/AuthenticatorFindCLI.java | 23 ++- .../tps/authenticator/AuthenticatorModifyCLI.java | 28 +-- .../tps/authenticator/AuthenticatorRemoveCLI.java | 25 ++- .../tps/authenticator/AuthenticatorShowCLI.java | 28 +-- .../netscape/cmstools/tps/cert/TPSCertFindCLI.java | 23 ++- .../netscape/cmstools/tps/cert/TPSCertShowCLI.java | 25 ++- .../cmstools/tps/config/ConfigModifyCLI.java | 34 ++-- .../cmstools/tps/config/ConfigShowCLI.java | 28 +-- .../cmstools/tps/connection/ConnectionAddCLI.java | 24 +-- .../cmstools/tps/connection/ConnectionFindCLI.java | 23 ++- .../tps/connection/ConnectionModifyCLI.java | 28 +-- .../tps/connection/ConnectionRemoveCLI.java | 25 ++- .../cmstools/tps/connection/ConnectionShowCLI.java | 28 +-- .../cmstools/tps/profile/ProfileAddCLI.java | 24 +-- .../cmstools/tps/profile/ProfileFindCLI.java | 23 ++- .../cmstools/tps/profile/ProfileMappingAddCLI.java | 24 +-- .../tps/profile/ProfileMappingFindCLI.java | 23 ++- .../tps/profile/ProfileMappingModifyCLI.java | 28 +-- .../tps/profile/ProfileMappingRemoveCLI.java | 25 ++- .../tps/profile/ProfileMappingShowCLI.java | 28 +-- .../cmstools/tps/profile/ProfileModifyCLI.java | 28 +-- .../cmstools/tps/profile/ProfileRemoveCLI.java | 25 ++- .../cmstools/tps/profile/ProfileShowCLI.java | 28 +-- .../netscape/cmstools/tps/token/TokenAddCLI.java | 24 +-- .../netscape/cmstools/tps/token/TokenFindCLI.java | 23 ++- .../cmstools/tps/token/TokenModifyCLI.java | 24 +-- .../cmstools/tps/token/TokenRemoveCLI.java | 25 ++- .../netscape/cmstools/tps/token/TokenShowCLI.java | 25 ++- .../src/com/netscape/cmstools/user/UserAddCLI.java | 28 +-- .../com/netscape/cmstools/user/UserCertAddCLI.java | 24 +-- .../netscape/cmstools/user/UserCertFindCLI.java | 32 ++-- .../netscape/cmstools/user/UserCertRemoveCLI.java | 25 ++- .../netscape/cmstools/user/UserCertShowCLI.java | 38 ++--- .../com/netscape/cmstools/user/UserFindCLI.java | 23 ++- .../cmstools/user/UserMembershipAddCLI.java | 25 ++- .../cmstools/user/UserMembershipFindCLI.java | 32 ++-- .../cmstools/user/UserMembershipRemoveCLI.java | 25 ++- .../com/netscape/cmstools/user/UserModifyCLI.java | 27 +-- .../com/netscape/cmstools/user/UserRemoveCLI.java | 25 ++- .../com/netscape/cmstools/user/UserShowCLI.java | 25 ++- 102 files changed, 1839 insertions(+), 1022 deletions(-) diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertFindCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertFindCLI.java index 333a3daca..8c7a4df14 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertFindCLI.java @@ -21,6 +21,7 @@ package com.netscape.cmstools.cert; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; +import java.util.Arrays; import java.util.Collection; import java.util.Date; @@ -46,102 +47,15 @@ public class CertFindCLI extends CLI { public CertFindCLI(CertCLI certCLI) { super("find", "Find certificates", certCLI); this.certCLI = certCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - - addOptions(); - - CommandLine cmd = null; - CertSearchRequest searchData = null; - try { - cmd = parser.parse(options, args); - } catch (ParseException e) { - System.err.println("Error: " + e.getMessage()); - printHelp(); - System.exit(1); - } - - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); - } - - String fileName = null; - - if (cmd.hasOption("input")) { - fileName = cmd.getOptionValue("input"); - if (fileName == null || fileName.length() < 1) { - System.err.println("Error: No file name specified."); - printHelp(); - System.exit(1); - } - } - - if (fileName != null) { - FileReader reader = null; - try { - reader = new FileReader(fileName); - searchData = CertSearchRequest.valueOf(reader); - - } catch (FileNotFoundException e) { - System.err.println("Error: " + e.getMessage()); - System.exit(1); - - } catch (JAXBException e) { - System.err.println("Error: " + e.getMessage()); - System.exit(1); - - } finally { - if (reader != null) - try { - reader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - } else { - searchData = new CertSearchRequest(); - searchData.setSerialNumberRangeInUse(true); - } - - String s = cmd.getOptionValue("start"); - Integer start = s == null ? null : Integer.valueOf(s); - - s = cmd.getOptionValue("size"); - Integer size = s == null ? null : Integer.valueOf(s); - - addSearchAttribute(cmd, searchData); - - CertDataInfos certs = certCLI.certClient.findCerts(searchData, start, size); - - MainCLI.printMessage(certs.getTotal() + " entries found"); - if (certs.getTotal() == 0) return; - - boolean first = true; - - Collection entries = certs.getEntries(); - for (CertDataInfo cert : entries) { - if (first) { - first = false; - } else { - System.out.println(); - } - - CertCLI.printCertInfo(cert); - } - - MainCLI.printMessage("Number of entries returned " + certs.getEntries().size()); - } - - public void addOptions() { - + public void createOptions() { Option option = null; //pagination options @@ -277,6 +191,101 @@ public class CertFindCLI extends CLI { 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; + + try { + cmd = parser.parse(options, args); + } catch (ParseException e) { + System.err.println("Error: " + e.getMessage()); + printHelp(); + System.exit(-1); + } + + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); + printHelp(); + System.exit(-1); + } + + CertSearchRequest searchData = null; + String fileName = null; + + if (cmd.hasOption("input")) { + fileName = cmd.getOptionValue("input"); + if (fileName == null || fileName.length() < 1) { + System.err.println("Error: No file name specified."); + printHelp(); + System.exit(-1); + } + } + + if (fileName != null) { + FileReader reader = null; + try { + reader = new FileReader(fileName); + searchData = CertSearchRequest.valueOf(reader); + + } catch (FileNotFoundException e) { + System.err.println("Error: " + e.getMessage()); + System.exit(-1); + + } catch (JAXBException e) { + System.err.println("Error: " + e.getMessage()); + System.exit(-1); + + } finally { + if (reader != null) + try { + reader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } else { + searchData = new CertSearchRequest(); + searchData.setSerialNumberRangeInUse(true); + } + + String s = cmd.getOptionValue("start"); + Integer start = s == null ? null : Integer.valueOf(s); + + s = cmd.getOptionValue("size"); + Integer size = s == null ? null : Integer.valueOf(s); + + addSearchAttribute(cmd, searchData); + + CertDataInfos certs = certCLI.certClient.findCerts(searchData, start, size); + + MainCLI.printMessage(certs.getTotal() + " entries found"); + if (certs.getTotal() == 0) return; + + boolean first = true; + + Collection entries = certs.getEntries(); + for (CertDataInfo cert : entries) { + if (first) { + first = false; + } else { + System.out.println(); + } + + CertCLI.printCertInfo(cert); + } + + MainCLI.printMessage("Number of entries returned " + certs.getEntries().size()); + } + public Long convertValidityDurationUnit(String unit) { if (unit.equalsIgnoreCase("day")) { diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertHoldCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertHoldCLI.java index eb4f619a4..a4b184871 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertHoldCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertHoldCLI.java @@ -20,6 +20,7 @@ package com.netscape.cmstools.cert; import java.io.BufferedReader; import java.io.InputStreamReader; +import java.util.Arrays; import netscape.security.x509.RevocationReason; @@ -44,19 +45,29 @@ public class CertHoldCLI extends CLI { public CertHoldCLI(CertCLI certCLI) { super("hold", "Place certificate on-hold", certCLI); this.certCLI = certCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { Option option = new Option(null, "comments", true, "Comments"); option.setArgName("comments"); options.addOption(option); options.addOption(null, "force", false, "Force"); + } + + 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; @@ -66,20 +77,15 @@ public class CertHoldCLI 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 != 1) { + System.err.println("Error: Missing Serial Number."); printHelp(); - System.exit(1); + System.exit(-1); } CertId certID = new CertId(cmdArgs[0]); @@ -98,7 +104,7 @@ public class CertHoldCLI extends CLI { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = reader.readLine(); if (!line.equalsIgnoreCase("Y")) { - System.exit(1); + System.exit(-1); } } diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertReleaseHoldCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertReleaseHoldCLI.java index 5917a0105..42a8ae9ca 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertReleaseHoldCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertReleaseHoldCLI.java @@ -20,6 +20,7 @@ package com.netscape.cmstools.cert; import java.io.BufferedReader; import java.io.InputStreamReader; +import java.util.Arrays; import org.apache.commons.cli.CommandLine; @@ -41,15 +42,25 @@ public class CertReleaseHoldCLI extends CLI { public CertReleaseHoldCLI(CertCLI certCLI) { super("release-hold", "Place certificate off-hold", certCLI); this.certCLI = certCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { options.addOption(null, "force", false, "Force"); + } + + 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; @@ -59,20 +70,15 @@ public class CertReleaseHoldCLI 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 != 1) { + System.err.println("Error: Missing Serial Number."); printHelp(); - System.exit(1); + System.exit(-1); } CertId certID = new CertId(cmdArgs[0]); @@ -91,7 +97,7 @@ public class CertReleaseHoldCLI extends CLI { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = reader.readLine(); if (!line.equalsIgnoreCase("Y")) { - System.exit(1); + System.exit(-1); } } diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestFindCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestFindCLI.java index 8024a042a..2d8779d07 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestFindCLI.java @@ -18,6 +18,7 @@ package com.netscape.cmstools.cert; +import java.util.Arrays; import java.util.Collection; import org.apache.commons.cli.CommandLine; @@ -40,17 +41,56 @@ public class CertRequestFindCLI extends CLI { public CertRequestFindCLI(CertCLI certCLI) { super("request-find", "Find certificate requests", certCLI); this.certCLI = certCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { + public void createOptions() { + Option option = null; + + // request state + option = new Option(null, "status", true, "Request status (pending, cancelled, rejected, complete, all)"); + option.setArgName("status"); + options.addOption(option); - addOptions(); + // request type + option = new Option(null, "type", true, "Request type (enrollment, renewal, revocation, all)"); + option.setArgName("type"); + options.addOption(option); + + //pagination options + option = new Option(null, "start", true, "Page start"); + option.setArgName("start"); + options.addOption(option); + + option = new Option(null, "size", true, "Page size"); + option.setArgName("size"); + options.addOption(option); + + //search limits + option = new Option(null, "maxResults", true, "Maximum number of results"); + option.setArgName("maxResults"); + options.addOption(option); + + option = new Option(null, "timeout", true, "Search timeout"); + option.setArgName("maxTime"); + 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; + try { cmd = parser.parse(options, args); } catch (ParseException e) { @@ -59,10 +99,12 @@ public class CertRequestFindCLI extends CLI { System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } String s = cmd.getOptionValue("start"); @@ -103,37 +145,4 @@ public class CertRequestFindCLI extends CLI { MainCLI.printMessage("Number of entries returned " + entries.size()); } - - public void addOptions() { - - Option option = null; - - // request state - option = new Option(null, "status", true, "Request status (pending, cancelled, rejected, complete, all)"); - option.setArgName("status"); - options.addOption(option); - - // request type - option = new Option(null, "type", true, "Request type (enrollment, renewal, revocation, all)"); - option.setArgName("type"); - options.addOption(option); - - //pagination options - option = new Option(null, "start", true, "Page start"); - option.setArgName("start"); - options.addOption(option); - - option = new Option(null, "size", true, "Page size"); - option.setArgName("size"); - options.addOption(option); - - //search limits - option = new Option(null, "maxResults", true, "Maximum number of results"); - option.setArgName("maxResults"); - options.addOption(option); - - option = new Option(null, "timeout", true, "Search timeout"); - option.setArgName("maxTime"); - options.addOption(option); - } } diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileFindCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileFindCLI.java index 85616a95b..d36fb590e 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileFindCLI.java @@ -1,5 +1,6 @@ package com.netscape.cmstools.cert; +import java.util.Arrays; import java.util.Collection; import org.apache.commons.cli.CommandLine; @@ -19,14 +20,15 @@ public class CertRequestProfileFindCLI extends CLI { public CertRequestProfileFindCLI(CertCLI certCLI) { super("request-profile-find", "List Enrollment templates", certCLI); this.certCLI = certCLI; + + 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, "start", true, "Page start"); option.setArgName("start"); options.addOption(option); @@ -34,6 +36,15 @@ public class CertRequestProfileFindCLI 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; @@ -43,13 +54,15 @@ public class CertRequestProfileFindCLI extends CLI { } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 1) { + System.err.println("Error: Missing Profile ID."); printHelp(); - System.exit(0); + System.exit(-1); } String s = cmd.getOptionValue("start"); diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileShowCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileShowCLI.java index 396eca623..8b626703f 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestProfileShowCLI.java @@ -1,5 +1,7 @@ package com.netscape.cmstools.cert; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.ParseException; @@ -16,18 +18,29 @@ public class CertRequestProfileShowCLI extends CLI { public CertRequestProfileShowCLI(CertCLI certCLI) { super("request-profile-show", "Get Enrollment template", certCLI); this.certCLI = certCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - CommandLine cmd = null; - + public void createOptions() { Option option = new Option(null, "output", true, "Output filename"); option.setArgName("filename"); 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; try { cmd = parser.parse(options, args); @@ -37,20 +50,15 @@ public class CertRequestProfileShowCLI extends CLI { System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); - } + String[] cmdArgs = cmd.getArgs(); - String[] cLineArgs = cmd.getArgs(); - if (cLineArgs.length < 1) { - System.err.println("Error: Missing profile ID."); + if (cmdArgs.length < 1) { + System.err.println("Error: Missing Profile ID."); printHelp(); System.exit(-1); } - String profileId = cLineArgs[0]; + String profileId = cmdArgs[0]; String filename = null; if (cmd.hasOption("output")) { diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestReviewCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestReviewCLI.java index 672b7b50e..4a8221bcd 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestReviewCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestReviewCLI.java @@ -32,6 +32,8 @@ public class CertRequestReviewCLI extends CLI { public CertRequestReviewCLI(CertCLI certCLI) { super("request-review", "Review certificate request", certCLI); this.certCLI = certCLI; + + createOptions(); } @Override @@ -39,10 +41,7 @@ public class CertRequestReviewCLI extends CLI { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - @Override - public void execute(String[] args) throws Exception { - CommandLine cmd = null; - + public void createOptions() { Option option = new Option(null, "action", true, "Action: " + StringUtils.join(actions, ", ")); option.setArgName("action"); options.addOption(option); @@ -50,6 +49,18 @@ public class CertRequestReviewCLI extends CLI { option = new Option(null, "file", true, "File to store the certificate request"); option.setArgName("filename"); options.addOption(option); + } + + @Override + 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; try { cmd = parser.parse(options, args); @@ -59,24 +70,19 @@ public class CertRequestReviewCLI extends CLI { System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); - } + String[] cmdArgs = cmd.getArgs(); - String[] cLineArgs = cmd.getArgs(); - if (cLineArgs.length < 1) { - System.err.println("Error: Missing certificate request ID."); + if (cmdArgs.length < 1) { + System.err.println("Error: Missing Certificate Request ID."); printHelp(); System.exit(-1); } RequestId requestId = null; try { - requestId = new RequestId(cLineArgs[0]); + requestId = new RequestId(cmdArgs[0]); } catch (NumberFormatException e) { - System.err.println("Error: Invalid certificate request ID " + cLineArgs[0] + "."); + System.err.println("Error: Invalid certificate request ID " + cmdArgs[0] + "."); System.exit(-1); } diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestShowCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestShowCLI.java index ca3ac44bc..aac18a679 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestShowCLI.java @@ -1,5 +1,7 @@ package com.netscape.cmstools.cert; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.ParseException; @@ -13,19 +15,27 @@ public class CertRequestShowCLI extends CLI { CertCLI certCLI; public CertRequestShowCLI(CertCLI certCLI) { + super("request-show", "Show certificate request", certCLI); this.certCLI = certCLI; } @Override public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } @Override 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; + try { cmd = parser.parse(options, args); } catch (ParseException e) { @@ -34,24 +44,19 @@ public class CertRequestShowCLI extends CLI { System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); - } + String[] cmdArgs = cmd.getArgs(); - String[] cLineArgs = cmd.getArgs(); - if (cLineArgs.length < 1) { - System.err.println("Error: Missing certificate request ID."); + if (cmdArgs.length < 1) { + System.err.println("Error: Missing Certificate Request ID."); printHelp(); System.exit(-1); } RequestId requestId = null; try { - requestId = new RequestId(cLineArgs[0]); + requestId = new RequestId(cmdArgs[0]); } catch (NumberFormatException e) { - System.err.println("Error: Invalid certificate request ID " + cLineArgs[0] + "."); + System.err.println("Error: Invalid certificate request ID " + cmdArgs[0] + "."); System.exit(-1); } diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java index 481a643c4..fe2b806b0 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRequestSubmitCLI.java @@ -2,6 +2,7 @@ package com.netscape.cmstools.cert; import java.io.File; import java.io.FileNotFoundException; +import java.util.Arrays; import java.util.Collection; import java.util.Scanner; @@ -26,11 +27,18 @@ public class CertRequestSubmitCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } @Override public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } + CommandLine cmd = null; try { @@ -41,22 +49,16 @@ public class CertRequestSubmitCLI extends CLI { System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); - } - - String[] cLineArgs = cmd.getArgs(); + String[] cmdArgs = cmd.getArgs(); - if (cLineArgs.length < 1) { + if (cmdArgs.length < 1) { System.err.println("Error: No filename specified."); printHelp(); System.exit(-1); } try { - CertEnrollmentRequest erd = getEnrollmentRequest(cLineArgs[0]); + CertEnrollmentRequest erd = getEnrollmentRequest(cmdArgs[0]); CertRequestInfos cri = certCLI.certClient.enrollRequest(erd); MainCLI.printMessage("Submitted certificate request"); printRequestInformation(cri); diff --git a/base/java-tools/src/com/netscape/cmstools/cert/CertRevokeCLI.java b/base/java-tools/src/com/netscape/cmstools/cert/CertRevokeCLI.java index 87d5869c4..afb0e03fd 100644 --- a/base/java-tools/src/com/netscape/cmstools/cert/CertRevokeCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cert/CertRevokeCLI.java @@ -20,6 +20,7 @@ package com.netscape.cmstools.cert; import java.io.BufferedReader; import java.io.InputStreamReader; +import java.util.Arrays; import netscape.security.x509.RevocationReason; @@ -44,14 +45,15 @@ public class CertRevokeCLI extends CLI { public CertRevokeCLI(CertCLI certCLI) { super("revoke", "Revoke certificate", certCLI); this.certCLI = certCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { StringBuilder sb = new StringBuilder(); for (RevocationReason reason : RevocationReason.INSTANCES) { @@ -74,6 +76,15 @@ public class CertRevokeCLI extends CLI { options.addOption(null, "ca", false, "CA signing certificate"); options.addOption(null, "force", false, "Force"); + } + + 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; @@ -83,20 +94,15 @@ public class CertRevokeCLI 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 != 1) { + System.err.println("Error: Missing Serial Number."); printHelp(); - System.exit(1); + System.exit(-1); } CertId certID = new CertId(cmdArgs[0]); @@ -107,7 +113,7 @@ public class CertRevokeCLI extends CLI { if (reason == null) { System.err.println("Error: Invalid revocation reason: "+string); printHelp(); - System.exit(1); + System.exit(-1); return; } @@ -132,7 +138,7 @@ public class CertRevokeCLI extends CLI { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = reader.readLine(); if (!line.equalsIgnoreCase("Y")) { - System.exit(1); + System.exit(-1); } } 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() + " [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"); diff --git a/base/java-tools/src/com/netscape/cmstools/cli/HelpCLI.java b/base/java-tools/src/com/netscape/cmstools/cli/HelpCLI.java index c2468f597..6b2a123d0 100644 --- a/base/java-tools/src/com/netscape/cmstools/cli/HelpCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cli/HelpCLI.java @@ -46,7 +46,7 @@ public class HelpCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); diff --git a/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java b/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java index f4511b93b..9943d1833 100644 --- a/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cli/MainCLI.java @@ -78,6 +78,8 @@ public class MainCLI extends CLI { addModule(new OCSPCLI(this)); addModule(new TKSCLI(this)); addModule(new TPSCLI(this)); + + createOptions(); } public String getFullModuleName(String moduleName) { @@ -113,7 +115,7 @@ public class MainCLI extends CLI { } } - public void createOptions(Options options) throws UnknownHostException { + public void createOptions() throws UnknownHostException { Option option = new Option("U", true, "Server URI"); option.setArgName("uri"); @@ -303,8 +305,6 @@ public class MainCLI extends CLI { public void execute(String[] args) throws Exception { - createOptions(options); - CommandLine cmd; try { cmd = parser.parse(options, args, true); @@ -363,7 +363,7 @@ public class MainCLI extends CLI { } else { System.err.println(t.getClass().getSimpleName()+": "+t.getMessage()); } - System.exit(1); + System.exit(-1); } } } diff --git a/base/java-tools/src/com/netscape/cmstools/client/ClientCertFindCLI.java b/base/java-tools/src/com/netscape/cmstools/client/ClientCertFindCLI.java index 12dde44c5..6d0bb6215 100644 --- a/base/java-tools/src/com/netscape/cmstools/client/ClientCertFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/client/ClientCertFindCLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.client; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.mozilla.jss.crypto.X509Certificate; @@ -34,30 +36,43 @@ public class ClientCertFindCLI extends CLI { public ClientCertFindCLI(ClientCLI clientCLI) { super("cert-find", "Find certificates in client security database", clientCLI); this.clientCLI = clientCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { options.addOption(null, "ca", false, "Find CA certificates only"); + } + + 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; + try { cmd = parser.parse(options, args); } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } client = parent.getClient(); diff --git a/base/java-tools/src/com/netscape/cmstools/client/ClientCertImportCLI.java b/base/java-tools/src/com/netscape/cmstools/client/ClientCertImportCLI.java index 185e241e6..e5b07b3e8 100644 --- a/base/java-tools/src/com/netscape/cmstools/client/ClientCertImportCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/client/ClientCertImportCLI.java @@ -20,6 +20,7 @@ package com.netscape.cmstools.client; import java.io.File; import java.io.FileOutputStream; +import java.util.Arrays; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -39,14 +40,15 @@ public class ClientCertImportCLI extends CLI { public ClientCertImportCLI(ClientCLI clientCLI) { super("cert-import", "Import certificate into client security database", clientCLI); this.clientCLI = clientCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { Option option = new Option(null, "cert", true, "Import certificate file"); option.setArgName("path"); options.addOption(option); @@ -56,6 +58,15 @@ public class ClientCertImportCLI extends CLI { options.addOption(option); options.addOption(null, "ca-server", false, "Import CA certificate from CA server"); + } + + 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; @@ -65,13 +76,15 @@ public class ClientCertImportCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } client = parent.getClient(); @@ -108,14 +121,14 @@ public class ClientCertImportCLI extends CLI { } else { System.err.println("Error: Missing certificate to import"); printHelp(); - System.exit(1); + System.exit(-1); } MainCLI mainCLI = (MainCLI)parent.getParent(); if (mainCLI.config.getCertNickname() == null) { System.err.println("Error: Certificate nickname is required."); - System.exit(1); + System.exit(-1); } File certDatabase = mainCLI.certDatabase; diff --git a/base/java-tools/src/com/netscape/cmstools/client/ClientCertRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/client/ClientCertRemoveCLI.java index 70ada906e..03743f644 100644 --- a/base/java-tools/src/com/netscape/cmstools/client/ClientCertRemoveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/client/ClientCertRemoveCLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.client; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import com.netscape.cmstools.cli.CLI; @@ -36,32 +38,34 @@ public class ClientCertRemoveCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } 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; + try { cmd = parser.parse(options, args); } 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 != 1) { + System.err.println("Error: No nickname specified."); printHelp(); - System.exit(1); + System.exit(-1); } client = parent.getClient(); diff --git a/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java b/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java index 50a39ac6f..bcce8785d 100644 --- a/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/client/ClientInitCLI.java @@ -23,6 +23,7 @@ import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.PrintWriter; +import java.util.Arrays; import org.apache.commons.cli.CommandLine; import org.apache.commons.io.FileUtils; @@ -37,15 +38,25 @@ public class ClientInitCLI extends CLI { public ClientInitCLI(ClientCLI clientCLI) { super("init", "Initialize client security database", clientCLI); + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { options.addOption(null, "force", false, "Force database initialization."); + } + + 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; @@ -55,20 +66,22 @@ public class ClientInitCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } MainCLI mainCLI = (MainCLI)parent.getParent(); if (mainCLI.config.getCertPassword() == null) { System.err.println("Error: Security database password is required."); - System.exit(1); + System.exit(-1); } boolean force = cmd.hasOption("force"); diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupAddCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupAddCLI.java index 4fd78089f..6d824fe1a 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupAddCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupAddCLI.java @@ -37,26 +37,29 @@ public class GroupAddCLI extends CLI { public GroupAddCLI(GroupCLI groupCLI) { super("add", "Add group", groupCLI); this.groupCLI = groupCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS...]", options); + formatter.printHelp(getFullName() + " --description [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { + public void createOptions() { + Option option = new Option(null, "description", true, "Description"); + option.setArgName("description"); + option.setRequired(true); + options.addOption(option); + } - // Check for "--help" prior to parsing due to required 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); } - Option option = new Option(null, "description", true, "Description"); - option.setArgName("description"); - option.setRequired(true); - options.addOption(option); - CommandLine cmd = null; try { @@ -65,14 +68,15 @@ public class GroupAddCLI 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 != 1) { + System.err.println("Error: No Group ID specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = cmdArgs[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java index 8cb54b1e7..3c340d8a2 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java @@ -18,6 +18,7 @@ package com.netscape.cmstools.group; +import java.util.Arrays; import java.util.Collection; import org.apache.commons.cli.CommandLine; @@ -38,14 +39,15 @@ public class GroupFindCLI extends CLI { public GroupFindCLI(GroupCLI groupCLI) { super("find", "Find groups", groupCLI); this.groupCLI = groupCLI; + + 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 GroupFindCLI 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 GroupFindCLI 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/group/GroupMemberAddCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberAddCLI.java index ec01cbb6e..3c953a14d 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberAddCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberAddCLI.java @@ -20,6 +20,8 @@ package com.netscape.cmstools.group; import java.util.Arrays; +import org.apache.commons.cli.CommandLine; + import com.netscape.certsrv.group.GroupMemberData; import com.netscape.cmstools.cli.CLI; import com.netscape.cmstools.cli.MainCLI; @@ -37,21 +39,34 @@ public class GroupMemberAddCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } public void execute(String[] args) throws Exception { - - // Check for "--help" prior to parsing due to required option + // Always check for "--help" prior to parsing if (Arrays.asList(args).contains("--help")) { // Display usage printHelp(); System.exit(0); } - if (args.length != 2) { + 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 != 2) { + System.err.println("Error: Incorrect number of arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = args[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java index b5100e340..41f310a5f 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java @@ -39,21 +39,15 @@ public class GroupMemberFindCLI extends CLI { public GroupMemberFindCLI(GroupMemberCLI groupMemberCLI) { super("find", "Find group members", groupMemberCLI); this.groupMemberCLI = groupMemberCLI; + + 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, "start", true, "Page start"); option.setArgName("start"); options.addOption(option); @@ -61,6 +55,15 @@ public class GroupMemberFindCLI 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; @@ -70,20 +73,15 @@ public class GroupMemberFindCLI 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 != 1) { + System.err.println("Error: No Group ID specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = cmdArgs[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberRemoveCLI.java index 8947b5f7e..95760aa2a 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberRemoveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberRemoveCLI.java @@ -20,6 +20,8 @@ package com.netscape.cmstools.group; import java.util.Arrays; +import org.apache.commons.cli.CommandLine; + import com.netscape.cmstools.cli.CLI; import com.netscape.cmstools.cli.MainCLI; @@ -36,21 +38,34 @@ public class GroupMemberRemoveCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } public void execute(String[] args) throws Exception { - - // Check for "--help" prior to parsing due to required option + // Always check for "--help" prior to parsing if (Arrays.asList(args).contains("--help")) { // Display usage printHelp(); System.exit(0); } - if (args.length != 2) { + 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 != 2) { + System.err.println("Error: Incorrect number of arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = args[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberShowCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberShowCLI.java index 4e10c3303..c04366d92 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberShowCLI.java @@ -20,6 +20,8 @@ package com.netscape.cmstools.group; import java.util.Arrays; +import org.apache.commons.cli.CommandLine; + import com.netscape.certsrv.group.GroupMemberData; import com.netscape.cmstools.cli.CLI; import com.netscape.cmstools.cli.MainCLI; @@ -37,21 +39,34 @@ public class GroupMemberShowCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } public void execute(String[] args) throws Exception { - - // Check for "--help" prior to parsing due to required option + // Always check for "--help" prior to parsing if (Arrays.asList(args).contains("--help")) { // Display usage printHelp(); System.exit(0); } - if (args.length != 2) { + 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 != 2) { + System.err.println("Error: Incorrect number of arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = args[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupModifyCLI.java index f7c522b52..e26a63b7c 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupModifyCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupModifyCLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.group; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -35,17 +37,27 @@ public class GroupModifyCLI extends CLI { public GroupModifyCLI(GroupCLI groupCLI) { super("mod", "Modify group", groupCLI); this.groupCLI = groupCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { Option option = new Option(null, "description", true, "Description"); option.setArgName("description"); 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; @@ -55,20 +67,15 @@ public class GroupModifyCLI 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 != 1) { + System.err.println("Error: No Group ID specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = cmdArgs[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupRemoveCLI.java index e27f8d5c5..0fd7d2fd0 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupRemoveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupRemoveCLI.java @@ -20,6 +20,8 @@ package com.netscape.cmstools.group; import java.util.Arrays; +import org.apache.commons.cli.CommandLine; + import com.netscape.cmstools.cli.CLI; import com.netscape.cmstools.cli.MainCLI; @@ -37,21 +39,34 @@ public class GroupRemoveCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [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 Group ID specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = args[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupShowCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupShowCLI.java index 9f617661d..0030c083a 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupShowCLI.java @@ -20,6 +20,8 @@ package com.netscape.cmstools.group; import java.util.Arrays; +import org.apache.commons.cli.CommandLine; + import com.netscape.certsrv.group.GroupData; import com.netscape.cmstools.cli.CLI; import com.netscape.cmstools.cli.MainCLI; @@ -37,21 +39,34 @@ public class GroupShowCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [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 Group ID specified."); printHelp(); - System.exit(1); + System.exit(-1); } String groupID = args[0]; 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 49ffe71de..d9bdd8843 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyArchiveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyArchiveCLI.java @@ -2,6 +2,7 @@ package com.netscape.cmstools.key; import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.util.Arrays; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; @@ -23,14 +24,15 @@ public class KeyArchiveCLI extends CLI { public KeyArchiveCLI(KeyCLI keyCLI) { super("archive", "Archive a secret in the DRM.", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) { - + public void createOptions() { Option option = new Option(null, "clientKeyID", true, "Unique client key identifier."); option.setArgName("Client Key Identifier"); options.addOption(option); @@ -43,21 +45,33 @@ public class KeyArchiveCLI extends CLI { "Location of the request template file.\nUsed for archiving already encrypted data."); option.setArgName("Input file path"); options.addOption(option); + } + + public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } String requestFile = cmd.getOptionValue("input"); 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 43310aa1d..73bad6b58 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyFindCLI.java @@ -18,6 +18,7 @@ package com.netscape.cmstools.key; +import java.util.Arrays; import java.util.Collection; import org.apache.commons.cli.CommandLine; @@ -39,14 +40,15 @@ public class KeyFindCLI extends CLI { public KeyFindCLI(KeyCLI keyCLI) { super("find", "Find keys", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) { - + public void createOptions() { Option option = new Option(null, "client", true, "Client ID"); option.setArgName("client ID"); options.addOption(option); @@ -70,6 +72,15 @@ public class KeyFindCLI extends CLI { option = new Option(null, "size", true, "Page size"); option.setArgName("size"); options.addOption(option); + } + + public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -79,13 +90,15 @@ public class KeyFindCLI extends CLI { } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } 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 3a2aa86e1..a551d61f3 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyGenerateCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyGenerateCLI.java @@ -18,21 +18,15 @@ public class KeyGenerateCLI extends CLI { public KeyGenerateCLI(KeyCLI keyCLI) { super("generate", "Generate key", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " --key-algorithm [OPTIONS...]", options); } - 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); - } - + public void createOptions() { 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"); @@ -52,22 +46,33 @@ public class KeyGenerateCLI extends CLI { + "\nValid values: wrap, unwrap, sign, verify, encrypt, decrypt."); option.setArgName("list of usages"); options.addOption(option); + } + + public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); + if (cmdArgs.length < 1) { - System.err.println("Error: Missing the Client Key Id"); + System.err.println("Error: Missing Client Key Id."); printHelp(); - System.exit(1); + System.exit(-1); } String clientKeyId = cmdArgs[0]; @@ -88,11 +93,11 @@ public class KeyGenerateCLI extends CLI { case KeyRequestResource.RC2_ALGORITHM: System.err.println("Error: Key size must be specified for the algorithm used."); printHelp(); - System.exit(1); + System.exit(-1); default: System.err.println("Error: Algorithm not supported."); printHelp(); - System.exit(1); + System.exit(-1); } } List usages = null; 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 437808084..b16bc41d1 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyModifyCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyModifyCLI.java @@ -34,48 +34,50 @@ public class KeyModifyCLI extends CLI { public KeyModifyCLI(KeyCLI keyCLI) { super("mod", "Modify the status of a key", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " --status [OPTIONS...]", options); } - public void execute(String[] args) { + public void createOptions() { + Option option = new Option(null, "status", true, "Status of the key.\nValid values: active, inactive"); + option.setRequired(true); + option.setArgName("status"); + options.addOption(option); + } - // Check for "--help" prior to parsing due to required option + public void execute(String[] args) { + // Always check for "--help" prior to parsing 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"); - options.addOption(option); - CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); - } - - String status = cmd.getOptionValue("status"); - if (status == null) { - System.out.println("No status:: " + status); - printHelp(); System.exit(-1); } String[] cmdArgs = cmd.getArgs(); + if (cmdArgs.length != 1) { + System.err.println("Error: No Key ID specified."); printHelp(); System.exit(-1); } + + String status = cmd.getOptionValue("status"); + KeyId keyId = new KeyId(cmdArgs[0]); keyCLI.keyClient.modifyKeyStatus(keyId, 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 cdaf6b66c..5077330fa 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRecoverCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRecoverCLI.java @@ -2,6 +2,7 @@ package com.netscape.cmstools.key; import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.util.Arrays; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; @@ -24,14 +25,15 @@ public class KeyRecoverCLI extends CLI { public KeyRecoverCLI(KeyCLI keyCLI) { super("recover", "Create a key recovery request", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) { - + public void createOptions() { Option option = new Option(null, "keyID", true, "Key Identifier for the secret to be recovered."); option.setArgName("Key Identifier"); options.addOption(option); @@ -39,21 +41,33 @@ public class KeyRecoverCLI extends CLI { option = new Option(null, "input", true, "Location of the request template file."); option.setArgName("Input file path"); options.addOption(option); + } + + public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } String requestFile = cmd.getOptionValue("input"); 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 20451042a..92c98f042 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestFindCLI.java @@ -18,6 +18,7 @@ package com.netscape.cmstools.key; +import java.util.Arrays; import java.util.Collection; import org.apache.commons.cli.CommandLine; @@ -40,14 +41,15 @@ public class KeyRequestFindCLI extends CLI { public KeyRequestFindCLI(KeyCLI keyCLI) { super("request-find", "Find key requests", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) { - + public void createOptions() { Option option = new Option(null, "status", true, "Request status"); option.setArgName("status"); options.addOption(option); @@ -75,6 +77,15 @@ public class KeyRequestFindCLI extends CLI { option = new Option(null, "pageSize", true, "Page size"); option.setArgName("page size"); options.addOption(option); + } + + public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -84,13 +95,15 @@ public class KeyRequestFindCLI extends CLI { } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } 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 5464625fc..15ca4f804 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestReviewCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestReviewCLI.java @@ -17,43 +17,49 @@ public class KeyRequestReviewCLI extends CLI { public KeyRequestReviewCLI(KeyCLI keyCLI) { super("request-review", "Review key request", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " --action [OPTIONS...]", options); } - public void execute(String[] args) { + public void createOptions() { + Option option = new Option(null, "action", true, + "Action to be performed on the request.\nValid values: approve, reject, cancel."); + option.setArgName("Action to perform"); + option.setRequired(true); + options.addOption(option); + } - // Check for "--help" prior to parsing due to required option + public void execute(String[] args) { + // Always check for "--help" prior to parsing 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"); - option.setRequired(true); - options.addOption(option); - CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); + if (cmdArgs.length != 1) { - System.err.println("Error: Invalid arguments provided."); + System.err.println("Error: Incorrect number of arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } + RequestId reqId = new RequestId(cmdArgs[0]); String action = cmd.getOptionValue("action"); @@ -70,7 +76,7 @@ public class KeyRequestReviewCLI extends CLI { default: System.err.println("Error: Invalid action."); printHelp(); - System.exit(1); + System.exit(-1); } KeyRequestInfo keyRequestInfo = keyCLI.keyClient.getRequestInfo(reqId); 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 0459fa759..fe3ef1446 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRequestShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRequestShowCLI.java @@ -37,7 +37,7 @@ public class KeyRequestShowCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } public void execute(String[] args) { @@ -49,18 +49,23 @@ public class KeyRequestShowCLI extends CLI { System.exit(0); } - if (args.length != 1) { - printHelp(); - System.exit(-1); - } CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); + } + + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 1) { + System.err.println("Error: No Request ID specified."); + 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 095595f78..98c243a82 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java @@ -3,6 +3,7 @@ package com.netscape.cmstools.key; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.util.Arrays; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; @@ -27,14 +28,15 @@ public class KeyRetrieveCLI extends CLI { public KeyRetrieveCLI(KeyCLI keyCLI) { super("retrieve", "Retrieve key", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) { - + public void createOptions() { Option option = new Option(null, "keyID", true, "Key Identifier for the secret to be recovered."); option.setArgName("Key Identifier"); options.addOption(option); @@ -50,25 +52,37 @@ public class KeyRetrieveCLI extends CLI { option = new Option(null, "output", true, "Location to store the retrieved key information"); option.setArgName("File path to store key information"); options.addOption(option); + } + + public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } if(cmd.getOptions().length==0){ - System.err.println("Error: Insufficient parameters provided."); + System.err.println("Error: Incorrect number of parameters provided."); printHelp(); System.exit(-1); } 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 172f24934..4e1c50d1e 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyShowCLI.java @@ -37,30 +37,34 @@ public class KeyShowCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " ", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } public void execute(String[] args) { - - // 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) { - printHelp(); - System.exit(-1); - } CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); + } + + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 1) { + System.err.println("Error: No Key ID specified."); + 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 5fc869dee..0e76d4f1d 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateFindCLI.java @@ -3,6 +3,7 @@ package com.netscape.cmstools.key; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; +import java.util.Arrays; import javax.xml.bind.JAXBException; @@ -26,25 +27,34 @@ public class KeyTemplateFindCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS]", options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } public void execute(String[] args) { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; + try { cmd = parser.parse(options, args); } catch (ParseException e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } 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 6e7365256..77d0680b4 100644 --- a/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/key/KeyTemplateShowCLI.java @@ -22,27 +22,30 @@ public class KeyTemplateShowCLI extends CLI { public KeyTemplateShowCLI(KeyCLI keyCLI) { super("template-show", "Get request template", keyCLI); this.keyCLI = keyCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() - + "