public static GlobalMetadata loadGlobal(String name, String description, CommandMetadata defaultCommand, Iterable<CommandMetadata> defaultGroupCommands, Iterable<CommandGroupMetadata> groups) { ImmutableList.Builder<OptionMetadata> globalOptionsBuilder = ImmutableList.builder(); if (defaultCommand != null) { globalOptionsBuilder.addAll(defaultCommand.getGlobalOptions()); } for (CommandMetadata command : defaultGroupCommands) { globalOptionsBuilder.addAll(command.getGlobalOptions()); } for (CommandGroupMetadata group : groups) { for (CommandMetadata command : group.getCommands()) { globalOptionsBuilder.addAll(command.getGlobalOptions()); } } List<OptionMetadata> globalOptions = mergeOptionSet(globalOptionsBuilder.build()); return new GlobalMetadata(name, description, globalOptions, defaultCommand, defaultGroupCommands, groups); }
public static CommandGroupMetadata loadCommandGroup(String name, String description, CommandMetadata defaultCommand, Iterable<CommandMetadata> commands) { ImmutableList.Builder<OptionMetadata> groupOptionsBuilder = ImmutableList.builder(); if (defaultCommand != null) { groupOptionsBuilder.addAll(defaultCommand.getGroupOptions()); } for (CommandMetadata command : commands) { groupOptionsBuilder.addAll(command.getGroupOptions()); } List<OptionMetadata> groupOptions = mergeOptionSet(groupOptionsBuilder.build()); return new CommandGroupMetadata(name, description, groupOptions, defaultCommand, commands); }
CommandGroupMetadata group = find(commandGroups, compose(equalTo(groupName), CommandGroupMetadata.nameGetter()), null); if (group != null) { group.addCommand(command); added = true;
@Override public Iterable<String> suggest() { return concat( transform(group.getCommands(), CommandMetadata.nameGetter()), concat(transform(group.getOptions(), OptionMetadata.optionsGetter())) ); } }
.append(group.getName()) .append("-") .append(group.getDescription()) .newline() .newline(); List<CommandMetadata> commands = newArrayList(group.getCommands()); Collections.sort(commands, commandComparator); if (group.getDefaultCommand() != null) { CommandMetadata command = group.getDefaultCommand(); if(!command.isHidden()) synopsis.append(group.getName()).appendWords(UsageHelper.toSynopsisUsage(command.getGroupOptions())); synopsis.newline(); synopsis.append(group.getName()).appendWords(UsageHelper.toSynopsisUsage(command.getGroupOptions())); synopsis.append(command.getName()).appendWords(UsageHelper.toSynopsisUsage(command.getCommandOptions())); synopsis.newline(); options.addAll(group.getOptions()); if (global != null && !hideGlobalOptions) { options.addAll(global.getOptions()); if (commands.size() > 0 || group.getDefaultCommand() != null) { out.append("COMMANDS").newline(); UsagePrinter commandPrinter = out.newIndentedPrinter(8); if (group.getDefaultCommand() != null && group.getDefaultCommand().getDescription() != null && !group.getDefaultCommand().isHidden()) {
private static CommandMetadata findCommandMetadata(GlobalMetadata global, Class<? extends PrideCommand> type) { CommandMetadata result = findCommandMetadata(null, global.getDefaultGroupCommands(), type); result = findCommandMetadata(result, global.getDefaultCommand(), type); for (CommandGroupMetadata group : global.getCommandGroups()) { result = findCommandMetadata(result, group.getCommands(), type); result = findCommandMetadata(result, group.getDefaultCommand(), type); } return result; }
CommandGroupMetadata group = find(metadata.getCommandGroups(), compose(equalTo(tokens.peek()), CommandGroupMetadata.nameGetter()), null); if (group != null) { tokens.next(); state = state.withGroup(group).pushContext(Context.GROUP); state = parseOptions(tokens, state, state.getGroup().getOptions()); expectedCommands = state.getGroup().getCommands();
if (name.endsWith(group.getName())) { for (CommandMetadata command : group.getCommands()) { if (commandName.equals(command.getName())) { new CommandUsage().usage(global.getName(), group.getName(), command, out); return;
commands.put(commandGroupMetadata.getName(), commandGroupMetadata.getDescription());
state = state.withCommand(state.getGroup().getDefaultCommand());
public String apply(CommandGroupMetadata input) { return input.getName(); } };
@Override public Iterable<String> suggest() { return concat( transform(metadata.getCommandGroups(), CommandGroupMetadata.nameGetter()), transform(metadata.getDefaultGroupCommands(), CommandMetadata.nameGetter()), concat(transform(metadata.getOptions(), OptionMetadata.optionsGetter())) ); } }
private void printCommandDescription(UsagePrinter commandPrinter, @Nullable CommandGroupMetadata group, CommandMetadata command) { if(!command.isHidden()) { if (group != null) { commandPrinter.append(group.getName()); } commandPrinter.append(command.getName()).newline(); if (command.getDescription() != null) { commandPrinter.newIndentedPrinter(4).append(command.getDescription()).newline(); } commandPrinter.newline(); } } }
@Override public void run() throws Ap3Exception { if(null != groupMetadata) { CommandMetadata metadata = promptForApp(groupMetadata.getCommands()); Ap3Command command = cli.getParsedCommand(metadata.getType()); if(null != command) { command.run(); } } }
CommandGroupMetadata groupMetadata = find(commandGroups, compose(equalTo(groupAnno.name()), CommandGroupMetadata.nameGetter()), null); if(null == groupMetadata) groupMetadata.addCommand(command); added = true;
@Override public void run() throws Ap3Exception { if(null != groupMetadata) { CommandMetadata metadata = promptForKit(groupMetadata.getCommands()); Ap3Command command = cli.getParsedCommand(metadata.getType()); if(null != command) { command.run(); } } }
@Override public void run() throws Ap3Exception { Path projectFile = Paths.get("").resolve(Ap3ConfigurationManager.PROJECT_CONFIG_FILENAME); if(!global && Files.notExists(projectFile)) { try { prompter.showError("Current directory is not a valid AP3 project."); prompter.showWarning("Either re-run this command with the -g|--global flag, or run: ap3 init"); return; } catch (PrompterException e) { //do nothing } } if(null != groupMetadata) { CommandMetadata metadata = promptForConfigCommand(groupMetadata.getCommands()); Ap3Command command = cli.getParsedCommand(metadata.getType()); if(null != command) { command.run(); } } }
for (CommandMetadata command : group.getCommands()) { printCommandDescription(commandPrinter, group, command);