private void formatSubcmds(CommandManager mgr, StringBuffer buff) throws CLIException { ResourceBundle rb = mgr.getResourceBundle(); buff.append(rb.getString("USAGE_SUBCOMMAND_TITLE")); buff.append("\n"); List defObjects = mgr.getDefinitionObjects(); Map mapCmds = new HashMap(); Set orderCmds = new TreeSet(); for (Iterator i = defObjects.iterator(); i.hasNext(); ) { IDefinition def = (IDefinition) i.next(); for (Iterator j = def.getSubCommands().iterator(); j.hasNext(); ) { SubCommand cmd = (SubCommand) j.next(); if ((cmd != null) && (!mgr.webEnabled() || cmd.webEnabled())) { String name = cmd.getName(); orderCmds.add(name); mapCmds.put(name, cmd.getDescription()); } } } StringBuilder buffCmd = new StringBuilder(); boolean started = false; String webEnabledURL = mgr.getWebEnabledURL(); for (Iterator i = orderCmds.iterator(); i.hasNext(); ) { String cmdName = (String) i.next(); buffCmd.append(formAbstractCmdUsage(webEnabledURL, cmdName, (String) mapCmds.get(cmdName))); } buff.append(buffCmd.toString()); }
private static SubCommand findSubCommand(final String name) { for (SubCommand cmd : subCommandList) { if (cmd.commandName().toUpperCase().equals(name.toUpperCase())) { return cmd; } } return null; }
private void formatOptions(CommandManager mgr, StringBuffer buff, SubCommand cmd) throws CLIException { ResourceBundle rb = mgr.getResourceBundle(); buff.append(rb.getString("USAGE_OPTIONS_TITLE")); buff.append("\n"); formatOption(cmd.getMandatoryOptions(), cmd, buff); formatOption(cmd.getOptionalOptions(), cmd, buff); buff.append("\n"); }
private static void printHelp() { System.out.println("The most commonly used mqadmin commands are:"); for (SubCommand cmd : subCommandList) { System.out.printf(" %-20s %s\n", cmd.commandName(), cmd.commandDesc()); } System.out.println( "\nSee 'mqadmin help <command>' for more information on a specific command."); }
private void formatUsage(CommandManager mgr, StringBuffer buff, SubCommand cmd) throws CLIException { ResourceBundle rb = mgr.getResourceBundle(); buff.append(rb.getString("USAGE")); buff.append("\n"); buff.append(mgr.getCommandName()).append(" ").append(cmd.getName()); formatOptionNames(cmd.getMandatoryOptions(), cmd, buff, CLIConstants.USAGE_OPTION_NAME_FORMAT); formatOptionNames( cmd.getOptionalOptions(), cmd, buff, CLIConstants.USAGE_OPTIONAL_OPTION_NAME_FORMAT); buff.append("\n").append("\n"); }
private void formatOptionNames(List list, SubCommand cmd, StringBuffer buff, String template) { for (Iterator i = list.iterator(); i.hasNext(); ) { String opt = (String) i.next(); if (!cmd.isOptionAlias(opt)) { Object[] params = {opt, cmd.getShortOptionName(opt)}; buff.append("\n").append(MessageFormat.format(template, params)); List aliases = cmd.getOptionAliases(opt); if ((aliases != null) && !aliases.isEmpty()) { for (Iterator j = aliases.iterator(); j.hasNext(); ) { String alias = (String) j.next(); String[] p = {alias, cmd.getShortOptionName(alias)}; buff.append(",").append(MessageFormat.format(template, (Object[]) p)); } } } } }
public static void main(String[] args) { System.setProperty( RemotingCommand.RemotingVersionKey, Integer.toString(MQVersion.CurrentVersion)); try { initLogback(); switch (args.length) { case 0: printHelp(); break; case 2: if (args[0].equals("help")) { SubCommand cmd = findSubCommand(args[1]); if (cmd != null) { Options options = ServerUtil.buildCommandlineOptions(new Options()); options = cmd.buildCommandlineOptions(options); if (options != null) { ServerUtil.printCommandLineHelp("mqadmin " + cmd.commandName(), options); } } else { System.out.println("The sub command \'" + args[1] + "\' not exist."); } break; } case 1: default: SubCommand cmd = findSubCommand(args[0]); if (cmd != null) { // 将main中的args转化为子命令的args(去除第一个参数) String[] subargs = parseSubArgs(args); // 解析命令行 Options options = ServerUtil.buildCommandlineOptions(new Options()); final CommandLine commandLine = ServerUtil.parseCmdLine( "mqadmin " + cmd.commandName(), subargs, cmd.buildCommandlineOptions(options), new PosixParser()); if (null == commandLine) { System.exit(-1); return; } if (commandLine.hasOption('n')) { String namesrvAddr = commandLine.getOptionValue('n'); System.setProperty(MixAll.NAMESRV_ADDR_PROPERTY, namesrvAddr); } cmd.execute(commandLine, options); } else { System.out.println("The sub command \'" + args[0] + "\' not exist."); } break; } } catch (Exception e) { e.printStackTrace(); } }
/** * Prints the usage of sub command. * * @param mgr Command Manager object. * @param cmd Sub command object. * @throws CLIException if usage text cannot be presented. */ public void format(CommandManager mgr, SubCommand cmd) throws CLIException { StringBuffer buff = new StringBuffer(); buff.append("\n\n"); ResourceBundle rb = mgr.getResourceBundle(); String commandName = mgr.getCommandName(); Object[] params = { commandName, cmd.getName(), rb.getString("USAGE_OPTIONS"), rb.getString("USAGE_GLOBAL_OPTIONS"), cmd.getDescription() }; buff.append(MessageFormat.format(CLIConstants.USAGE_SUBCMD_LONG_FORMAT, params)); buff.append("\n"); formatUsage(mgr, buff, cmd); formatGlobalOptions(mgr, buff); formatOptions(mgr, buff, cmd); mgr.getOutputWriter().printlnMessage(buff.toString()); }
private void formatOption(List list, SubCommand cmd, StringBuffer buff) { for (Iterator i = list.iterator(); i.hasNext(); ) { String opt = (String) i.next(); if (!cmd.isOptionAlias(opt)) { List aliases = cmd.getOptionAliases(opt); if ((aliases == null) || aliases.isEmpty()) { formatOption(buff, opt, cmd, CLIConstants.USAGE_OPTION_FORMAT); } else { formatOption( buff, opt, aliases, cmd, CLIConstants.USAGE_OPTION_FORMAT, CLIConstants.USAGE_OPTION_WITH_ALIAS_FORMAT); } } } }
private void formatOption( StringBuffer buff, String opt, List aliases, SubCommand cmd, String format, String aliasFormat) { Object[] params = {opt, cmd.getShortOptionName(opt), cmd.getOptionDescription(opt)}; buff.append(MessageFormat.format(aliasFormat, params)); int sz = aliases.size(); for (int i = 0; i < sz; i++) { String alias = (String) aliases.get(i); Object[] p = {alias, cmd.getShortOptionName(alias), cmd.getOptionDescription(alias)}; if (i == (sz - 1)) { buff.append(MessageFormat.format(format, p)); } else { buff.append(MessageFormat.format(aliasFormat, p)); } } buff.append("\n"); }
private void formatOption(StringBuffer buff, String opt, SubCommand cmd, String format) { Object[] params = {opt, cmd.getShortOptionName(opt), cmd.getOptionDescription(opt)}; buff.append(MessageFormat.format(format, params)); buff.append("\n"); }