protected Collection<HelpOption> collectOptions() { HelpOptions helpOptions = new HelpOptions(); application.getCommands().forEach(c -> { // for now expose commands as simply options (commands are options in a default CLI parser) helpOptions.add(c.asOption()); c.getOptions().forEach(o -> helpOptions.add(o)); }); application.getOptions().forEach(o -> helpOptions.add(o)); return helpOptions.getOptions(); }
protected OptionParser createParser() { // do not allow option abbreviations .. we will provide short forms explicitly OptionParser parser = new OptionParser(false); application.getCommands().forEach(c -> { c.getOptions().forEach(o -> addOption(parser, o)); // using option-bound command strategy... OptionMetadata commandAsOption = c.asOption(); addOption(parser, commandAsOption); }); // load global options application.getOptions().forEach(o -> addOption(parser, o)); return parser; }
@Provides @Singleton ApplicationMetadata provideApplicationMetadata( ApplicationDescription descriptionHolder, CommandManager commandManager, Set<OptionMetadata> options, Set<DeclaredVariable> declaredVars, ModulesMetadata modulesMetadata) { ApplicationMetadata.Builder builder = ApplicationMetadata .builder() .description(descriptionHolder.getDescription()) .addOptions(options); commandManager.getAllCommands().values().forEach(mc -> { if (!mc.isHidden() && !mc.isDefault()) { builder.addCommand(mc.getCommand().getMetadata()); } }); // merge default command options with top-level app options commandManager.getPublicDefaultCommand().ifPresent(c -> builder.addOptions(c.getMetadata().getOptions())); declaredVars.forEach(dv -> DeclaredVariableMetaCompiler .compileIfValid(dv, modulesMetadata) .ifPresent(builder::addVariable)); return builder.build(); }
protected OptionParser createParser() { // do not allow option abbreviations .. we will provide short forms explicitly OptionParser parser = new OptionParser(false); application.getCommands().forEach(c -> { c.getOptions().forEach(o -> addOption(parser, o)); // using option-bound command strategy... OptionMetadata commandAsOption = c.asOption(); addOption(parser, commandAsOption); }); // load global options application.getOptions().forEach(o -> addOption(parser, o)); return parser; }
protected Collection<HelpOption> collectOptions() { HelpOptions helpOptions = new HelpOptions(); application.getCommands().forEach(c -> { // for now expose commands as simply options (commands are options in a default CLI parser) helpOptions.add(c.asOption()); c.getOptions().forEach(o -> helpOptions.add(o)); }); application.getOptions().forEach(o -> helpOptions.add(o)); return helpOptions.getOptions(); }
/** Replies the options of the program. * * @return the options of the program. */ public List<HelpOption> getOptions() { final BQRuntime runtime = createRuntime(); final ApplicationMetadata application = runtime.getInstance(ApplicationMetadata.class); final HelpOptions helpOptions = new HelpOptions(); application.getCommands().forEach(c -> { helpOptions.add(c.asOption()); c.getOptions().forEach(o -> helpOptions.add(o)); }); application.getOptions().forEach(o -> helpOptions.add(o)); return helpOptions.getOptions(); }
@Provides @Singleton ApplicationMetadata provideApplicationMetadata( ApplicationDescription descriptionHolder, CommandManager commandManager, Set<OptionMetadata> options, Set<DeclaredVariable> declaredVars, ModulesMetadata modulesMetadata) { ApplicationMetadata.Builder builder = ApplicationMetadata .builder() .description(descriptionHolder.getDescription()) .addOptions(options); commandManager.getAllCommands().values().forEach(mc -> { if (!mc.isHidden() && !mc.isDefault()) { builder.addCommand(mc.getCommand().getMetadata()); } }); // merge default command options with top-level app options commandManager.getPublicDefaultCommand().ifPresent(c -> builder.addOptions(c.getMetadata().getOptions())); declaredVars.forEach(dv -> DeclaredVariableMetaCompiler .compileIfValid(dv, modulesMetadata) .ifPresent(builder::addVariable)); return builder.build(); }