}
cli = manager.parse(args);
String charset = cli.getOptionValue(CLIManager.OPT_CHARSET);
ConfigRuntimeImpl runtimeImpl = new ConfigRuntimeImpl(System.in, System.out, System.err, charset);
runtime = runtimeImpl;
// ��ʾ����
if (cli.hasOption(CLIManager.OPT_HELP)) {
manager.help(runtimeImpl.getOut());
return 0;
}
// ����cli�����ݣ�����runtime���ԡ�
if (cli.hasOption(CLIManager.OPT_GUI_MODE)) {
runtimeImpl.setGuiMode();
}
if (cli.hasOption(CLIManager.OPT_TEXT_MODE)) {
runtimeImpl.setTextMode();
}
if (cli.hasOption(CLIManager.OPT_NON_INTERACTIVE_MODE)) {
runtimeImpl.setInteractiveMode(ConfigConstant.INTERACTIVE_OFF);
} else if (cli.hasOption(CLIManager.OPT_INTERACTIVE_MODE)) {
String mode = cli.getOptionValue(CLIManager.OPT_INTERACTIVE_MODE);
if (StringUtil.isBlank(mode)) {
runtimeImpl.setInteractiveMode(ConfigConstant.INTERACTIVE_ON);
} else {
runtimeImpl.setInteractiveMode(mode);
}
}
runtimeImpl.setDescriptorPatterns(cli.getOptionValue(CLIManager.OPT_INCLUDE_DESCRIPTORS), cli
.getOptionValue(CLIManager.OPT_EXCLUDE_DESCRIPTORS));
runtimeImpl.setPackagePatterns(cli.getOptionValue(CLIManager.OPT_INCLUDE_PACKAGES), cli
.getOptionValue(CLIManager.OPT_EXCLUDE_PACKAGES));
runtimeImpl.setType(cli.getOptionValue(CLIManager.OPT_TYPE));
runtimeImpl.setDests(cli.getArgs());
String[] outputs = null;
if (cli.hasOption(CLIManager.OPT_OUTPUT_FILES)) {
String outputFileNames = cli.getOptionValue(CLIManager.OPT_OUTPUT_FILES);
if (outputFileNames != null) {
outputs = outputFileNames.split("[,\\s]+");
}
runtimeImpl.setOutputs(outputs);
}
if (cli.hasOption(CLIManager.OPT_USER_PROPERTIES)) {
runtimeImpl.setUserPropertiesFile(cli.getOptionValue(CLIManager.OPT_USER_PROPERTIES), charset);
}
if (cli.hasOption(CLIManager.OPT_SHARED_PROPERTIES) || cli.hasOption(CLIManager.OPT_SHARED_PROPERTIES_NAME)) {
String[] sharedPropertiesFiles = StringUtil.split(cli.getOptionValue(CLIManager.OPT_SHARED_PROPERTIES));
String sharedPropertiesName = cli.getOptionValue(CLIManager.OPT_SHARED_PROPERTIES_NAME);
runtimeImpl.setSharedPropertiesFiles(sharedPropertiesFiles, sharedPropertiesName, charset);
}
if (cli.hasOption(CLIManager.OPT_VERBOSE)) {
runtimeImpl.setVerbose();
initLogging(true, charset);
} else {
initLogging(false, charset);
}
// ����antxconfig
try {
runtimeImpl.start();
} catch (Exception e) {
runtimeImpl.error(e);
}
return 0;
}