提交 da4eb6a9 编写于 作者: S Serge Rider

Command line processing refactored (process params in right order)

上级 8959b3da
...@@ -16,10 +16,7 @@ ...@@ -16,10 +16,7 @@
*/ */
package org.jkiss.dbeaver.ui.app.standalone; package org.jkiss.dbeaver.ui.app.standalone;
import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.*;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Platform;
...@@ -270,26 +267,32 @@ public class DBeaverCommandLine ...@@ -270,26 +267,32 @@ public class DBeaverCommandLine
return false; return false;
} }
boolean exit = false; boolean exit = false;
for (ParameterDescriptor param : customParameters.values()) { for (Option cliOption : commandLine.getOptions()) {
if (commandLine.hasOption(param.name)) { ParameterDescriptor param = customParameters.get(cliOption.getOpt());
try { if (param == null) {
if (param.hasArg) { param = customParameters.get(cliOption.getLongOpt());
for (String optValue : commandLine.getOptionValues(param.name)) { }
param.handler.handleParameter( if (param == null) {
param.name, log.error("Wrong command line parameter " + cliOption);
optValue); continue;
} }
} else { try {
if (param.hasArg) {
for (String optValue : commandLine.getOptionValues(param.name)) {
param.handler.handleParameter( param.handler.handleParameter(
param.name, param.name,
null); optValue);
} }
} catch (Exception e) { } else {
log.error("Error evaluating parameter '" + param.name + "'", e); param.handler.handleParameter(
} param.name,
if (param.exitAfterExecute) { null);
exit = true;
} }
} catch (Exception e) {
log.error("Error evaluating parameter '" + param.name + "'", e);
}
if (param.exitAfterExecute) {
exit = true;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册