Example usage for org.apache.commons.cli OptionGroup addOption

List of usage examples for org.apache.commons.cli OptionGroup addOption

Introduction

In this page you can find the example usage for org.apache.commons.cli OptionGroup addOption.

Prototype

public OptionGroup addOption(Option option) 

Source Link

Document

Add the specified Option to this group.

Usage

From source file:com.ericsson.eiffel.remrem.publish.cli.CliOptions.java

private static OptionGroup createContentGroup() {
    OptionGroup group = new OptionGroup();
    group.addOption(createFileOption());
    group.addOption(createJsonOption());
    return group;
}

From source file:co.cask.cdap.cli.CLIMain.java

private static void addOptionalOption(Options options, Option option) {
    OptionGroup optionalGroup = new OptionGroup();
    optionalGroup.setRequired(false);/*from  w ww.j a  v a2s. c  o m*/
    optionalGroup.addOption(option);
    options.addOptionGroup(optionalGroup);
}

From source file:com.springrts.springls.CmdLineArgs.java

private static Options createOptions() {

    Configuration defaults = ServerConfiguration.getDefaults();

    Options options = new Options();

    Option help = new Option(null, "help", false, "Print this help message.");
    options.addOption(help);//from   ww w .  j av  a2 s.  co m

    Option port = new Option("p", "port", true,
            String.format("The main (TCP) port number to host on [1, 65535]." + " The default is %d.",
                    defaults.getInt(ServerConfiguration.PORT)));
    // possible types:
    // * File.class
    // * Number.class
    // * Class.class
    // * Object.class
    // * Url.class
    port.setType(Number.class);
    port.setArgName("port-number");
    options.addOption(port);

    Option statistics = new Option(null, "statistics", false,
            "Whether to create and save statistics to disc on predefined" + " intervals.");
    options.addOption(statistics);

    Option natPort = new Option("n", "nat-port", true,
            String.format(
                    "The (UDP) port number to host the NAT traversal techniques"
                            + " help service on [1, 65535], which lets clients detect their"
                            + " source port, for example when using \"hole punching\"." + " The default is %d.",
                    defaults.getInt(ServerConfiguration.NAT_PORT)));
    port.setType(Number.class);
    natPort.setArgName("NAT-port-number");
    options.addOption(natPort);

    Option logMain = new Option(null, "log-main", false,
            String.format("Whether to log all conversations from channel #main to \"%s\"",
                    Channel.createDefaultActivityLogFilePath("main").getPath()));
    options.addOption(logMain);

    Option lanAdmin = new Option(null, "lan-admin", true,
            String.format(
                    "The LAN mode admin account. Use this account to administer"
                            + " your LAN server. The default is \"%s\", with password \"%s\".",
                    defaults.getString(ServerConfiguration.LAN_ADMIN_USERNAME),
                    defaults.getString(ServerConfiguration.LAN_ADMIN_PASSWORD)));
    lanAdmin.setArgName("username");
    options.addOption(lanAdmin);

    Option loadArgs = new Option(null, "load-args", true,
            "Will read command-line arguments from the specified file."
                    + " You can freely combine actual command-line arguments with"
                    + " the ones from the file. If duplicate args are specified,"
                    + " the last one will prevail.");
    loadArgs.setArgName("filename");
    port.setType(File.class);
    options.addOption(loadArgs);

    Option springVersion = new Option(null, "spring-version", true,
            "Will set the latest Spring version to this string."
                    + " The default is \"*\". This is used to tell clients which"
                    + " version is the latest one, so that they know when to" + " update.");
    springVersion.setArgName("version");
    options.addOption(springVersion);

    Option useStorageDb = new Option(null, "database", false,
            "Use a DB for user accounts and ban entries." + " This disables \"LAN mode\".");
    options.addOption(useStorageDb);

    Option useStorageFile = new Option(null, "file-storage", false,
            "Use the (deprecated) accounts.txt for user accounts." + " This disables \"LAN mode\".");
    options.addOption(useStorageFile);

    OptionGroup storageOG = new OptionGroup();
    storageOG.addOption(useStorageDb);
    storageOG.addOption(useStorageFile);
    options.addOptionGroup(storageOG);

    return options;
}

From source file:io.github.eternalbits.compactvd.CompactVD.java

private static Options buildOptions() {
    Options options = new Options();
    OptionGroup source = new OptionGroup();
    source.addOption(Option.builder("i").longOpt("inplace").desc("compact <src> image file in place").hasArgs()
            .argName("src").build());
    source.addOption(Option.builder("c").longOpt("copy").desc("copy <src> to a new, optimized image").hasArgs()
            .argName("src").build());
    source.addOption(Option.builder("d").longOpt("dump").desc("print <src> disk image details").hasArgs()
            .argName("src").build());
    source.setRequired(true);/* w ww . j  a  v  a  2  s.  co m*/
    options.addOptionGroup(source);
    options.addOptionGroup(new OptionGroup()
            .addOption(Option.builder("u").longOpt("drop-unused")
                    .desc("drop space not in use by system and files").build())
            .addOption(Option.builder("U").longOpt("keep-unused")
                    .desc("keep space not in use by system and files").build()));
    options.addOptionGroup(new OptionGroup()
            .addOption(Option.builder("z").longOpt("drop-zeroed").desc("drop space filled with zeros").build())
            .addOption(
                    Option.builder("Z").longOpt("keep-zeroed").desc("keep space filled with zeros").build()));
    options.addOption(Option.builder("w").longOpt("write").desc("set <out> as destination file for copy")
            .hasArgs().argName("out").build());
    options.addOption(Option.builder("f").longOpt("format")
            .desc("copy output format: VDI, VMDK, VHD or IMG|RAW").hasArgs().argName("fmt").build());
    options.addOption(Option.builder("o").longOpt("overwrite").desc("overwrite existing file on copy").build());
    options.addOption(Option.builder("v").longOpt("verbose").desc("explain what is being done").build());
    return options;
}

From source file:com.sindicetech.siren.demo.loader.Loader.java

private static Options buildOptions() {
    Options options = new Options();
    // input file name and help are exclusive
    OptionGroup fileHelpGroup = new OptionGroup();
    fileHelpGroup.setRequired(true);/*from   w w  w.j  a v a  2 s  . c  o m*/
    fileHelpGroup
            .addOption(OptionBuilder.hasArgs(1).hasOptionalArgs(20).withArgName("file or/and folder name[s]")
                    .withDescription("JSON file[s] or/and director(y|ies) with JSON files (max 20)")
                    .withLongOpt(INPUT_FILE_OPT_LONG).isRequired().create(INPUT_FILE_OPT));

    fileHelpGroup.addOption(OptionBuilder.withDescription("prints help and exits").create(HELP_OPT));
    options.addOptionGroup(fileHelpGroup);
    options.addOption(OptionBuilder.hasArgs(1).withArgName("Solr URL")
            .withDescription("Solr URL (default=" + DEFAULT_SOLR_URL + ")").withLongOpt(URL_OPT_LONG)
            .isRequired(false).create(URL_OPT));

    //    options.addOption(OptionBuilder
    //        .hasArgs(1)
    //        .withArgName("batch size")
    //        .withDescription(
    //            "number of documents sent to Solr in one request, max " + MAX_BATCH_SIZE + " (default="
    //                + DEFAULT_BATCH_SIZE + ")").withLongOpt(BATCH_OPT_LONG).isRequired(false)
    //        .create(BATCH_OPT));

    options.addOption(OptionBuilder
            .withDescription("load all files in directories, not only files with JSON file extension")
            .withLongOpt(NO_EXT_CHECK_OPT_LONG).isRequired(false).create(NO_EXT_CHECK_OPT));
    options.addOption(
            OptionBuilder.withDescription("JSON file extension (default=" + DEFAULT_JSON_EXTENSION + ")")
                    .withLongOpt(EXT_OPT_LONG).isRequired(false).create(EXT_OPT));
    options.addOption(OptionBuilder.withDescription("commit after each file, (default=false)")
            .withLongOpt(COMMIT_EACH_LONG).isRequired(false).create(COMMIT_EACH_OPT));

    return options;
}

From source file:com.linkedin.helix.examples.BootstrapProcess.java

@SuppressWarnings("static-access")
private static Options constructCommandLineOptions() {
    Option helpOption = OptionBuilder.withLongOpt(help).withDescription("Prints command-line options info")
            .create();// w  w  w .  j a v  a2s . c  o  m

    Option zkServerOption = OptionBuilder.withLongOpt(zkServer).withDescription("Provide zookeeper address")
            .create();
    zkServerOption.setArgs(1);
    zkServerOption.setRequired(true);
    zkServerOption.setArgName("ZookeeperServerAddress(Required)");

    Option clusterOption = OptionBuilder.withLongOpt(cluster).withDescription("Provide cluster name").create();
    clusterOption.setArgs(1);
    clusterOption.setRequired(true);
    clusterOption.setArgName("Cluster name (Required)");

    Option hostOption = OptionBuilder.withLongOpt(hostAddress).withDescription("Provide host name").create();
    hostOption.setArgs(1);
    hostOption.setRequired(true);
    hostOption.setArgName("Host name (Required)");

    Option portOption = OptionBuilder.withLongOpt(hostPort).withDescription("Provide host port").create();
    portOption.setArgs(1);
    portOption.setRequired(true);
    portOption.setArgName("Host port (Required)");

    Option stateModelOption = OptionBuilder.withLongOpt(stateModel).withDescription("StateModel Type").create();
    stateModelOption.setArgs(1);
    stateModelOption.setRequired(true);
    stateModelOption.setArgName("StateModel Type (Required)");

    // add an option group including either --zkSvr or --configFile
    Option fileOption = OptionBuilder.withLongOpt(configFile)
            .withDescription("Provide file to read states/messages").create();
    fileOption.setArgs(1);
    fileOption.setRequired(true);
    fileOption.setArgName("File to read states/messages (Optional)");

    Option transDelayOption = OptionBuilder.withLongOpt(transDelay).withDescription("Provide state trans delay")
            .create();
    transDelayOption.setArgs(1);
    transDelayOption.setRequired(false);
    transDelayOption.setArgName("Delay time in state transition, in MS");

    OptionGroup optionGroup = new OptionGroup();
    optionGroup.addOption(zkServerOption);
    optionGroup.addOption(fileOption);

    Options options = new Options();
    options.addOption(helpOption);
    // options.addOption(zkServerOption);
    options.addOption(clusterOption);
    options.addOption(hostOption);
    options.addOption(portOption);
    options.addOption(stateModelOption);
    options.addOption(transDelayOption);

    options.addOptionGroup(optionGroup);

    return options;
}

From source file:com.tvh.gmaildrafter.Drafter.java

private static Options getCMDLineOptions() {
    /*/*w ww. j  av  a2  s .  c  om*/
     * Create the command line options
     */
    Options options = new Options();
    options.addOption(new Option("h", "help", false, "Show this help message."));

    OptionGroup body = new OptionGroup();
    body.addOption(new Option("i", "stdin", false, "Read body text from stdin."));
    body.addOption(OptionBuilder.withLongOpt("body").withArgName("filename").hasArg()
            .withDescription("File containing the body text").create("b"));
    options.addOptionGroup(body);

    options.addOption(OptionBuilder.withLongOpt("username").hasArg().withArgName("email address")
            .withDescription("Your Google Email adress.").create());
    options.addOption(OptionBuilder.withLongOpt("password").hasArg().withArgName("google password")
            .withDescription(
                    "Your Google password (caution: providing this on the commandline can be a security problem).")
            .create());

    options.addOption(OptionBuilder.withLongOpt("subject").withArgName("text").hasArg()
            .withDescription("Subject of the mail").create("s"));
    options.addOption(OptionBuilder.withLongOpt("subjectfile").withArgName("filename").hasArg()
            .withDescription("File containing the subject of the mail (UTF-8)").create());
    options.addOption(OptionBuilder.withLongOpt("attachments").hasArgs().withArgName("filename,filename,...")
            .withValueSeparator(',').withDescription("Attachments").create("a"));

    options.addOption(
            OptionBuilder.withLongOpt("attachmentnames").hasArgs().withArgName("filename,filename,...")
                    .withValueSeparator(',').withDescription("Attachment names").create("n"));

    options.addOption(OptionBuilder.withLongOpt("to").hasArgs().withArgName("foo@bar.com,oof@rab.com,...")
            .withValueSeparator(',').withDescription("destination").create("t"));

    options.addOption(new Option("d", "deletebody", false, "Delete bodyfile after sending."));
    options.addOption(new Option(null, "deletesubjectfile", false, "Delete subjectfile after sending."));

    options.addOption(new Option(null, "immediate", false, "Immediately send, don't open draft first."));
    options.addOption(OptionBuilder.withLongOpt("cc").hasArgs().withArgName("foo@bar1.com,foo@rba.com")
            .withValueSeparator(',').withDescription("cc").create("c"));
    options.addOption(OptionBuilder.withLongOpt("bcc").hasArgs().withArgName("foo@bar2.com,ofo@bar.com")
            .withValueSeparator(',').withDescription("bcc").create());

    return options;

}

From source file:at.favre.tools.dconvert.ui.CLIInterpreter.java

private static Options setupOptions(ResourceBundle bundle) {
    Options options = new Options();

    Option srcOpt = Option.builder(SOURCE_ARG).required().argName("path to file or folder").hasArg(true)
            .desc(bundle.getString("arg.descr.cmd.src")).build();
    Option srcScaleOpt = Option.builder(SCALE_ARG).argName("[float]|[int]dp").hasArg(true)
            .desc(bundle.getString("arg.descr.cmd.scale")).build();
    Option dstOpt = Option.builder(DST_ARG).hasArg(true).argName("path")
            .desc(bundle.getString("arg.descr.cmd.dst")).build();

    Option platform = Option.builder(PLATFORM_ARG).hasArg(true).argName("all|android|ios|win|web")
            .desc(MessageFormat.format(bundle.getString("arg.descr.cmd.platform"), Arguments.DEFAULT_PLATFORM))
            .build();/*from   w  w  w.j av  a2  s. c  om*/
    Option threadCount = Option.builder(THREADS_ARG).argName("1-8").hasArg(true).desc(MessageFormat
            .format(bundle.getString("arg.descr.cmd.threads"), String.valueOf(Arguments.DEFAULT_THREAD_COUNT)))
            .build();
    Option roundingHandler = Option
            .builder(ROUNDING_MODE_ARG).argName("round|ceil|floor").hasArg(true).desc(MessageFormat
                    .format(bundle.getString("arg.descr.cmd.rounding"), Arguments.DEFAULT_ROUNDING_STRATEGY))
            .build();
    Option compression = Option.builder(OUT_COMPRESSION_ARG).hasArg(true).argName("png|jpg|gif|bmp")
            .desc(bundle.getString("arg.descr.cmd.outcompression")).build();
    Option compressionQuality = Option.builder(COMPRESSION_QUALITY_ARG).hasArg(true).argName("0.0-1.0")
            .desc(MessageFormat.format(bundle.getString("arg.descr.cmd.compression"),
                    String.valueOf(Arguments.DEFAULT_COMPRESSION_QUALITY)))
            .build();
    Option upScalingAlgo = Option.builder(UPSCALING_ALGO_ARG).hasArg(true)
            .argName(EScalingAlgorithm.getCliArgString(EScalingAlgorithm.Type.UPSCALING))
            .desc(MessageFormat.format(bundle.getString("arg.descr.scalingalgo"), Arguments.DEFAULT_PLATFORM))
            .build();
    Option downScalingAlgo = Option.builder(DOWNSCALING_ALGO_ARG).hasArg(true)
            .argName(EScalingAlgorithm.getCliArgString(EScalingAlgorithm.Type.DOWNSCALING))
            .desc(MessageFormat.format(bundle.getString("arg.descr.scalingalgo"), Arguments.DEFAULT_PLATFORM))
            .build();

    Option skipExistingFiles = Option.builder(SKIP_EXISTING_ARG)
            .desc(bundle.getString("arg.descr.skipexisting")).build();
    Option androidIncludeLdpiTvdpi = Option.builder("androidIncludeLdpiTvdpi")
            .desc(bundle.getString("arg.descr.androidmipmap")).build();
    Option mipmapInsteadOfDrawable = Option.builder("androidMipmapInsteadOfDrawable")
            .desc(bundle.getString("arg.descr.androidldpi")).build();
    Option iosCreateImagesetFolders = Option.builder("iosCreateImagesetFolders")
            .desc(bundle.getString("arg.descr.iosimageset")).build();
    Option skipUpscaling = Option.builder("skipUpscaling").desc(bundle.getString("arg.descr.skipupscaling"))
            .build();
    Option verboseLog = Option.builder(VERBOSE_ARG).desc(bundle.getString("arg.descr.cmd.verbose")).build();
    Option haltOnError = Option.builder("haltOnError").desc(bundle.getString("arg.descr.halterror")).build();
    Option antiAliasing = Option.builder("antiAliasing").desc(bundle.getString("arg.descr.antialiasing"))
            .build();
    Option enablePngCrush = Option.builder("postProcessorPngCrush").desc(bundle.getString("arg.descr.pngcrush"))
            .build();
    Option postWebpConvert = Option.builder("postProcessorWebp").desc(bundle.getString("arg.descr.webp"))
            .build();
    Option keepUnPostProcessed = Option.builder("keepOriginalPostProcessedFiles")
            .desc(bundle.getString("arg.descr.keeporiginal")).build();
    Option dpScaleIsHeight = Option.builder(SCALE_IS_HEIGHT_DP_ARG)
            .desc(bundle.getString("arg.descr.cmd.dpIsHeight")).build();
    Option dryRun = Option.builder("dryRun").desc(bundle.getString("arg.descr.dryrun")).build();
    Option enableMozJpeg = Option.builder("postProcessorMozJpeg").desc(bundle.getString("arg.descr.mozjpeg"))
            .build();
    Option cleanBeforeConvert = Option.builder("clean").desc(bundle.getString("arg.descr.clean")).build();

    Option help = Option.builder("h").longOpt("help").desc(bundle.getString("arg.descr.cmd.help")).build();
    Option version = Option.builder("v").longOpt("version").desc(bundle.getString("arg.descr.cmd.version"))
            .build();
    Option gui = Option.builder("gui").desc(bundle.getString("arg.descr.cmd.gui")).build();

    OptionGroup mainArgs = new OptionGroup();
    mainArgs.addOption(srcOpt).addOption(help).addOption(version).addOption(gui);
    mainArgs.setRequired(true);

    options.addOption(srcScaleOpt).addOption(dstOpt);
    options.addOption(platform).addOption(compression).addOption(compressionQuality).addOption(threadCount)
            .addOption(roundingHandler).addOption(upScalingAlgo).addOption(downScalingAlgo);
    options.addOption(skipExistingFiles).addOption(skipUpscaling).addOption(androidIncludeLdpiTvdpi)
            .addOption(verboseLog).addOption(antiAliasing).addOption(dryRun).addOption(haltOnError)
            .addOption(mipmapInsteadOfDrawable).addOption(enablePngCrush).addOption(postWebpConvert)
            .addOption(dpScaleIsHeight).addOption(enableMozJpeg).addOption(keepUnPostProcessed)
            .addOption(iosCreateImagesetFolders).addOption(cleanBeforeConvert);

    options.addOptionGroup(mainArgs);

    return options;
}

From source file:net.sourceforge.docfetcher.CommandLineHandler.java

@SuppressWarnings("static-access")
private static Options createOptions() {
    Options options = new Options();

    // Windows registry manipulation options
    OptionGroup registryGroup = new OptionGroup();
    registryGroup.addOption(OptionBuilder.withLongOpt(REGISTER_CONTEXTMENU)
            .withDescription("add search entry to Windows explorer contextmenu").create());
    registryGroup.addOption(OptionBuilder.withLongOpt(UNREGISTER_CONTEXTMENU)
            .withDescription("remove search entry from Windows explorer contextmenu").create());
    options.addOptionGroup(registryGroup);

    // Text extraction options
    OptionGroup extractGroup = new OptionGroup();
    extractGroup.addOption(OptionBuilder.withLongOpt(EXTRACT)
            .withDescription("extract text from documents to textfile").hasOptionalArgs().create());
    extractGroup.addOption(OptionBuilder.withLongOpt(EXTRACT_DIR)
            .withDescription("extract text from documents to directory").hasOptionalArgs().create());
    options.addOptionGroup(extractGroup);

    // Inclusion and exclusion filter options
    options.addOption(/*from w ww  . j ava2  s . co m*/
            OptionBuilder.withLongOpt(INCLUDE).withDescription("regex inclusion filter for text extraction")
                    .hasArg().withArgName(REGEX).create());
    options.addOption(
            OptionBuilder.withLongOpt(EXCLUDE).withDescription("regex exclusion filter for text extraction")
                    .hasArg().withArgName(REGEX).create());

    // Version info and help options
    options.addOption("h", "help", false, "print this help and exit");
    options.addOption("v", "version", false, "print version number and exit");

    return options;
}

From source file:com.github.triceo.robozonky.app.CommandLineInterface.java

/**
 * Parse the command line./*from   ww w  .  ja  v  a  2 s  .  c o m*/
 *
 * @param args Command line arguments as received by {@link App#main(String...)}.
 * @return Empty if parsing failed, at which point it will write standard help message to sysout.
 */
public static Optional<CommandLineInterface> parse(final String... args) {
    // create the mode of operation
    final OptionGroup operatingModes = new OptionGroup();
    operatingModes.setRequired(true);
    Stream.of(OperatingMode.values()).forEach(mode -> operatingModes.addOption(mode.getSelectingOption()));
    // find all options from all modes of operation
    final Collection<Option> ops = Stream.of(OperatingMode.values()).map(OperatingMode::getOtherOptions)
            .collect(LinkedHashSet::new, LinkedHashSet::addAll, LinkedHashSet::addAll);
    // include authentication options
    final OptionGroup authenticationModes = new OptionGroup();
    authenticationModes.setRequired(true);
    authenticationModes.addOption(CommandLineInterface.OPTION_USERNAME);
    authenticationModes.addOption(CommandLineInterface.OPTION_KEYSTORE);
    ops.add(CommandLineInterface.OPTION_PASSWORD);
    ops.add(CommandLineInterface.OPTION_USE_TOKEN);
    ops.add(CommandLineInterface.OPTION_FAULT_TOLERANT);
    ops.add(CommandLineInterface.OPTION_CLOSED_SEASON);
    ops.add(CommandLineInterface.OPTION_ZONK);
    // join all in a single config
    final Options options = new Options();
    options.addOptionGroup(operatingModes);
    options.addOptionGroup(authenticationModes);
    ops.forEach(options::addOption);
    final CommandLineParser parser = new DefaultParser();
    // and parse
    try {
        final CommandLine cli = parser.parse(options, args);
        CommandLineInterface.logOptionValues(cli);
        return Optional.of(new CommandLineInterface(options, cli));
    } catch (final ParseException ex) {
        CommandLineInterface.printHelp(options, ex.getMessage(), true);
        return Optional.empty();
    }
}