diff options
Diffstat (limited to 'base/java-tools/src/com/netscape/cmstools/client/ClientCertImportCLI.java')
-rw-r--r-- | base/java-tools/src/com/netscape/cmstools/client/ClientCertImportCLI.java | 31 |
1 files changed, 22 insertions, 9 deletions
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; |