Example usage for org.apache.commons.cli OptionBuilder hasArg

List of usage examples for org.apache.commons.cli OptionBuilder hasArg

Introduction

In this page you can find the example usage for org.apache.commons.cli OptionBuilder hasArg.

Prototype

public static OptionBuilder hasArg(boolean hasArg) 

Source Link

Document

The next Option created will require an argument value if hasArg is true.

Usage

From source file:gov.llnl.lc.smt.command.node.SmtNode.java

/**
 * Initializes the resources for the Command, primarily the Option
 * object.//  ww w.  j  a  va 2 s .c o  m
 *
 * @see gov.llnl.lc.smt.command.SmtCommand#init()
 *
 * @return  true
 ***********************************************************/
public boolean init() {
    USAGE = "[-h=<host url>] [-pn=<port num>]  <node: guid, lid, or name>";
    HEADER = "smt-node - Get node information (most commands require some form of node identification)";
    EXAMPLE = "examples:" + SmtConstants.NEW_LINE
            + "> smt-node -pn 10011 -sr                  - provide a summary of nodes in the fabric"
            + SmtConstants.NEW_LINE
            + "> smt-node 0006:6a01:e800:1313 -q status  - provide node status using a guid"
            + SmtConstants.NEW_LINE
            + "> smt-node -pn 10011 184 -q errors        - show the errors on the node with lid 184"
            + SmtConstants.NEW_LINE
            + "> smt-node ibcore1 L113 -q route          - using the switches name, show its routing table"
            + SmtConstants.NEW_LINE
            + "> smt-node -rH surface3h.his -dump        - dump all information about all the nodes"
            + SmtConstants.NEW_LINE + "."; // terminate with nl

    // create and initialize the common options for this command
    initCommonOptions();

    // initialize the command specific options
    SmtProperty sp = SmtProperty.SMT_QUERY_TYPE;
    Option qType = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_QUERY_LIST;
    Option qList = new Option(sp.getShortName(), sp.getName(), false, sp.getDescription());

    sp = SmtProperty.SMT_STATUS;
    Option status = OptionBuilder.hasArg(false).withDescription(sp.getDescription()).withLongOpt(sp.getName())
            .create(sp.getShortName());

    sp = SmtProperty.SMT_DUMP;
    Option dump = OptionBuilder.hasArg(false).withDescription(sp.getDescription()).withLongOpt(sp.getName())
            .create(sp.getShortName());

    options.addOption(qType);
    options.addOption(qList);
    options.addOption(status);
    options.addOption(dump);

    return true;
}

From source file:acromusashi.stream.tools.TopologyExecutionWaitTool.java

/**
 * Generate command line analyze option object.
 * /*  w ww  .  jav  a 2 s. c  o  m*/
 * @return command line analyze option object
 */
public static Options createOptions() {
    Options cliOptions = new Options();

    // Config path option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Storm config path");
    OptionBuilder.withDescription("Storm config path");
    OptionBuilder.isRequired(false);
    Option configOption = OptionBuilder.create("c");

    // Check interval option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Check interval(Sec)");
    OptionBuilder.withDescription("Check interval(Sec)");
    OptionBuilder.isRequired(false);
    Option intervalOption = OptionBuilder.create("i");

    // Check target topology name
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Check target topology name");
    OptionBuilder.withDescription("Check target topology name");
    OptionBuilder.isRequired(true);
    Option targetOption = OptionBuilder.create("t");

    // Wait timeout option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Wait timeout(Sec)");
    OptionBuilder.withDescription("Wait timeout(Sec)");
    OptionBuilder.isRequired(false);
    Option waitOption = OptionBuilder.create("w");

    // Help option
    OptionBuilder.withDescription("show help");
    Option helpOption = OptionBuilder.create("sh");

    cliOptions.addOption(configOption);
    cliOptions.addOption(intervalOption);
    cliOptions.addOption(targetOption);
    cliOptions.addOption(waitOption);
    cliOptions.addOption(helpOption);
    return cliOptions;
}

From source file:gov.llnl.lc.smt.command.console.SmtConsole.java

/**
 * Describe the method here//from   w  w  w.  j av  a 2s  .c  om
 *
 * @see gov.llnl.lc.smt.command.SmtCommand#init()
 *
 * @return
 ***********************************************************/

@Override
public boolean init() {
    USAGE = "[-h=<host url>] [-pn=<port num>]";
    HEADER = "smt-console - An interactive console (curses application)";

    // create and initialize the common options for this command
    initCommonOptions();

    // initialize the command specific options
    SmtProperty sp = SmtProperty.SMT_REUSE;
    Option re_use = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_UPDATE_PERIOD;
    Option uPeriod = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_UPDATE_MULTIPLIER;
    Option multi = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_WRAP_DATA;
    Option wrap = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_READ_OMS_HISTORY;
    Option rHist = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_PLAY_CONTROL;
    Option play = new Option(sp.getShortName(), sp.getName(), false, sp.getDescription());

    sp = SmtProperty.SMT_FILTER_FILE;
    Option fF = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    options.addOption(re_use);
    options.addOption(uPeriod);
    options.addOption(multi);
    options.addOption(wrap);
    options.addOption(rHist);
    options.addOption(fF);

    options.addOption(play);

    return true;
}

From source file:gov.llnl.lc.smt.command.server.SmtServer.java

/**
 * Describe the method here/*ww w.  j a v  a 2s .c om*/
 *
 * @see gov.llnl.lc.smt.command.SmtCommand#init()
 *
 * @return
 ***********************************************************/

@Override
public boolean init() {
    USAGE = "[-h=<host url>] [-pn=<port num>] [-rH=<filename>";
    HEADER = "\nsmt-server - shows the status of the OpenSM Monitoring Service\n\n";
    EXAMPLE = "examples:" + SmtConstants.NEW_LINE
            + "> smt-server -pn 10013          - shows the active status of the service via a direct connection"
            + SmtConstants.NEW_LINE
            + "> smt-server -rH HypeFR.his     - shows the historical status of the service from the file"
            + SmtConstants.NEW_LINE + "."; // terminate with nl 

    // create and initialize the common options for this command
    initCommonOptions();

    SmtProperty sp = SmtProperty.SMT_QUERY_TYPE;
    Option qType = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_QUERY_LIST;
    Option qList = new Option(sp.getShortName(), sp.getName(), false, sp.getDescription());

    sp = SmtProperty.SMT_STATUS;
    Option status = OptionBuilder.hasArg(false).withDescription(sp.getDescription()).withLongOpt(sp.getName())
            .create(sp.getShortName());

    options.addOption(status);
    options.addOption(qType);
    options.addOption(qList);

    return true;
}

From source file:gov.llnl.lc.smt.command.top.SmtTop.java

/**
 * Describe the method here/* ww w  . ja va2  s  . c o  m*/
 *
 * @see gov.llnl.lc.smt.command.SmtCommand#init()
 *
 * @return
 ***********************************************************/

@Override
public boolean init() {
    USAGE = "[-h=<host url>] [-pn=<port num>] [-rC=<filename>] [-wH=<filename> [-pX=<playback multipliers>]] ";
    HEADER = "\nsmt-top - display active nodes, ports, links\n\n";
    EXAMPLE = "examples:" + SmtConstants.NEW_LINE
            + "> smt-top -pn 10013                        - shows the top 20 traffic nodes"
            + SmtConstants.NEW_LINE
            + "> smt-top -pn 10013 -pE 15                 - shows the top 15 error ports"
            + SmtConstants.NEW_LINE
            + "> smt-top -pn 10013 -lT 10                 - show the top 10 busiest links"
            + SmtConstants.NEW_LINE
            + "> smt-top -rH HypeFR.his -pControl -pT 20  - using a flight recorder file, show the top 20 ports and provide a time slider"
            + SmtConstants.NEW_LINE + "."; // terminate with nl 

    // create and initialize the common options for this command
    initMinimumOptions();
    initConnectionOptions();
    initMulitReadFileOptions();
    initPlayableOptions();

    // initialize the command specific options
    SmtProperty sp = SmtProperty.SMT_NODE_TRAFFIC;
    Option nT = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_NODE_ERRORS;
    Option nE = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_LINK_TRAFFIC;
    Option lT = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_LINK_ERRORS;
    Option lE = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_PORT_TRAFFIC;
    Option pT = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_PORT_ERRORS;
    Option pE = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    sp = SmtProperty.SMT_FILTER_FILE;
    Option fF = OptionBuilder.hasArg(true).hasArgs(1).withArgName(sp.getArgName()).withValueSeparator('=')
            .withDescription(sp.getDescription()).withLongOpt(sp.getName()).create(sp.getShortName());

    options.addOption(nT);
    options.addOption(nE);
    options.addOption(lT);
    options.addOption(lE);
    options.addOption(pT);
    options.addOption(pE);
    options.addOption(fF);

    return true;
}

From source file:au.edu.flinders.ehl.filmweekly.FwImporter.java

private static Options createOptions() {

    Options options = new Options();

    OptionBuilder.withArgName("path");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("path to the properties file");
    OptionBuilder.isRequired(true);//from  ww  w  . j  a v a  2  s. co m
    options.addOption(OptionBuilder.create("properties"));

    OptionBuilder.withArgName("path");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("optional path to the log4j properties file");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("log4j"));

    OptionBuilder.withArgName("path");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("path to the input file");
    OptionBuilder.isRequired(true);
    options.addOption(OptionBuilder.create("input"));

    OptionBuilder.withArgName("path");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("path to the coordinate list file");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("debug_coord_list"));

    OptionBuilder.withArgName("path");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("path to the json list file");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("debug_json_list"));

    return options;
}

From source file:acromusashi.stream.tools.ConfigPutTool.java

/**
 * Generate command line analyze option object.
 * /* ww w.j  av a  2  s .  co  m*/
 * @return command line analyze option object
 */
public static Options createOptions() {
    Options cliOptions = new Options();

    // Config path option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Storm config path");
    OptionBuilder.withDescription("Storm config path");
    OptionBuilder.isRequired(false);
    Option configOption = OptionBuilder.create("c");

    // Source config path option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Source config path");
    OptionBuilder.withDescription("Source config path");
    OptionBuilder.isRequired(true);
    Option sourceOption = OptionBuilder.create("s");

    // Destination config path option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Destination config path");
    OptionBuilder.withDescription("Destination config path");
    OptionBuilder.isRequired(true);
    Option destinationOption = OptionBuilder.create("d");

    // User account option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("User account");
    OptionBuilder.withDescription("User account");
    OptionBuilder.isRequired(true);
    Option accountOption = OptionBuilder.create("ua");

    // User password option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("User password");
    OptionBuilder.withDescription("User password");
    OptionBuilder.isRequired(false);
    Option passwordOption = OptionBuilder.create("up");

    // Ssh port option
    OptionBuilder.hasArg(true);
    OptionBuilder.withArgName("Ssh port");
    OptionBuilder.withDescription("Ssh port");
    OptionBuilder.isRequired(false);
    Option sshPortOption = OptionBuilder.create("sp");

    // 
    OptionBuilder.withDescription("show help");
    Option helpOption = OptionBuilder.create("sh");

    cliOptions.addOption(configOption);
    cliOptions.addOption(sourceOption);
    cliOptions.addOption(destinationOption);
    cliOptions.addOption(accountOption);
    cliOptions.addOption(passwordOption);
    cliOptions.addOption(sshPortOption);
    cliOptions.addOption(helpOption);
    return cliOptions;
}

From source file:com.google.api.ads.adwords.jaxws.extensions.AwReporting.java

/**
 * Creates the command line options./*www  .j  a v a  2 s. c  o m*/
 *
 * @return the {@link Options}.
 */
private static Options createCommandLineOptions() {

    Options options = new Options();
    Option help = new Option("help", "print this message");
    options.addOption(help);

    OptionBuilder.withArgName("file");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("aw-report-sample.properties file.");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("file"));

    OptionBuilder.withArgName("YYYYMMDD");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("Start date for CUSTOM_DATE Reports (YYYYMMDD)");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("startDate"));

    OptionBuilder.withArgName("YYYMMDD");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("End date for CUSTOM_DATE Reports (YYYYMMDD)");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("endDate"));

    OptionBuilder.withArgName("DateRangeType");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("ReportDefinitionDateRangeType");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("dateRange"));

    OptionBuilder.withArgName("htmlTemplateFile> <outputDirectory");
    OptionBuilder.withValueSeparator(' ');
    OptionBuilder.hasArgs(2);
    OptionBuilder.withDescription("Generate Monthly Account Reports for all Accounts in PDF\n"
            + "NOTE: For PDF use aw-report-sample-for-pdf.properties instead, the fields need to be different.");
    options.addOption(OptionBuilder.create("generatePdf"));

    OptionBuilder.withArgName("accountIdsFile");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("Consider ONLY the account IDs specified on the file to run the report");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("accountIdsFile"));

    OptionBuilder.withArgName("verbose");
    OptionBuilder.hasArg(false);
    OptionBuilder.withDescription("The application will print all the tracing on the console");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("verbose"));

    OptionBuilder.withArgName("debug");
    OptionBuilder.hasArg(false);
    OptionBuilder.withDescription(
            "Will display all the debug information. " + "If the option 'verbose' is activated, "
                    + "all the information will be displayed on the console as well");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("debug"));

    return options;
}

From source file:com.google.api.ads.adwords.awalerting.AwAlerting.java

/**
 * Creates the command line options.//ww w .j  a  v  a2  s .  c  o  m
 *
 * @return the {@link Options}
 */
private static Options createCommandLineOptions() {
    Options options = new Options();

    OptionBuilder.withArgName("help");
    OptionBuilder.hasArg(false);
    OptionBuilder.withDescription("print this message");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("help"));

    OptionBuilder.withArgName("file");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("aw-report-alerting-sample.properties file.");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("file"));

    OptionBuilder.withArgName("accountIdsFile");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("Consider ONLY the account IDs specified on the file to run the report");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("accountIdsFile"));

    OptionBuilder.withArgName("debug");
    OptionBuilder.hasArg(false);
    OptionBuilder.withDescription(
            "Will display all the debug information. " + "If the option 'verbose' is activated, "
                    + "all the information will be displayed on the console as well");
    OptionBuilder.isRequired(false);
    options.addOption(OptionBuilder.create("debug"));

    return options;
}

From source file:com.xuggle.mediatool.demos.Converter.java

/**
 * Define all the command line options this program can take.
 * /* www.ja va  2 s .  c om*/
 * @return The set of accepted options.
 */
public Options defineOptions() {
    Options options = new Options();

    Option help = new Option("help", "print this message");

    /*
     * Output container options.
     */
    OptionBuilder.withArgName("container-format");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("output container format to use (e.g. \"mov\")");
    Option containerFormat = OptionBuilder.create("containerformat");

    OptionBuilder.withArgName("icontainer-format");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("input container format to use (e.g. \"mov\")");
    Option icontainerFormat = OptionBuilder.create("icontainerformat");

    OptionBuilder.withArgName("file");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("container option presets file");
    Option cpreset = OptionBuilder.create("cpreset");

    /*
     * Audio options
     */
    OptionBuilder.hasArg(false);
    OptionBuilder.withDescription("no audio");
    Option ano = OptionBuilder.create("ano");

    OptionBuilder.withArgName("file");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("audio option presets file");
    Option apreset = OptionBuilder.create("apreset");

    OptionBuilder.withArgName("codec");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("audio codec to encode with (e.g. \"libmp3lame\")");
    Option acodec = OptionBuilder.create("acodec");

    OptionBuilder.withArgName("icodec");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("input audio codec  (e.g. \"libmp3lame\")");
    Option iacodec = OptionBuilder.create("iacodec");

    OptionBuilder.withArgName("sample-rate");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("audio sample rate to (up/down) encode with (in hz) (e.g. \"22050\")");
    Option asamplerate = OptionBuilder.create("asamplerate");

    OptionBuilder.withArgName("isample-rate");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("input audio sample rate to (up/down) encode with (in hz) (e.g. \"22050\")");
    Option iasamplerate = OptionBuilder.create("iasamplerate");

    OptionBuilder.withArgName("channels");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("number of audio channels (1 or 2) to encode with (e.g. \"2\")");
    Option achannels = OptionBuilder.create("achannels");

    OptionBuilder.withArgName("ichannels");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("input number of audio channels (1 or 2)");
    Option iachannels = OptionBuilder.create("iachannels");

    OptionBuilder.withArgName("abit-rate");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("bit rate to encode audio with (in bps) (e.g. \"60000\")");
    Option abitrate = OptionBuilder.create("abitrate");

    OptionBuilder.withArgName("stream");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription(
            "if multiple audio streams of a given type, this is the stream you want to output");
    Option astream = OptionBuilder.create("astream");

    OptionBuilder.withArgName("quality");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription(
            "quality setting to use for audio.  0 means same as source; higher numbers are (perversely) lower quality.  Defaults to 0.");
    Option aquality = OptionBuilder.create("aquality");

    /*
     * Video options
     */
    OptionBuilder.hasArg(false);
    OptionBuilder.withDescription("no video");
    Option vno = OptionBuilder.create("vno");

    OptionBuilder.withArgName("file");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("video option presets file");
    Option vpreset = OptionBuilder.create("vpreset");

    OptionBuilder.withArgName("codec");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("video codec to encode with (e.g. \"mpeg4\")");
    Option vcodec = OptionBuilder.create("vcodec");

    OptionBuilder.withArgName("factor");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("scaling factor to scale output video by (e.g. \"0.75\")");
    Option vscaleFactor = OptionBuilder.create("vscalefactor");

    OptionBuilder.withArgName("vbitrate");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription("bit rate to encode video with (in bps) (e.g. \"60000\")");
    Option vbitrate = OptionBuilder.create("vbitrate");

    OptionBuilder.withArgName("vbitratetolerance");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription(
            "bit rate tolerance the bitstream is allowed to diverge from the reference (in bits) (e.g. \"1200000\")");
    Option vbitratetolerance = OptionBuilder.create("vbitratetolerance");

    OptionBuilder.withArgName("stream");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription(
            "if multiple video streams of a given type, this is the stream you want to output");
    Option vstream = OptionBuilder.create("vstream");

    OptionBuilder.withArgName("quality");
    OptionBuilder.hasArg(true);
    OptionBuilder.withDescription(
            "quality setting to use for video.  0 means same as source; higher numbers are (perversely) lower quality.  Defaults to 0.  If set, then bitrate flags are ignored.");
    Option vquality = OptionBuilder.create("vquality");

    OptionBuilder.withArgName("realtime");
    OptionBuilder.hasArg(false);
    OptionBuilder.withDescription(
            "attempt to encode frames at the realtime rate -- i.e. it encodes when the picture should play");
    Option realtime = OptionBuilder.create("realtime");

    options.addOption(help);
    options.addOption(containerFormat);
    options.addOption(cpreset);
    options.addOption(ano);
    options.addOption(apreset);
    options.addOption(acodec);
    options.addOption(asamplerate);
    options.addOption(achannels);
    options.addOption(abitrate);
    options.addOption(astream);
    options.addOption(aquality);
    options.addOption(vno);
    options.addOption(vpreset);
    options.addOption(vcodec);
    options.addOption(vscaleFactor);
    options.addOption(vbitrate);
    options.addOption(vbitratetolerance);
    options.addOption(vstream);
    options.addOption(vquality);

    options.addOption(icontainerFormat);
    options.addOption(iacodec);
    options.addOption(iachannels);
    options.addOption(iasamplerate);

    options.addOption(realtime);

    return options;
}