/** * Create command line option with only long name and only one argument. * * @param longOpt long version of option * @param argName name of argument for help message * @param desc description of option */ private Option createSingleArgOpt(String longOpt, String argName, String desc) { return Option.builder().longOpt(longOpt).hasArg().argName(argName).desc(desc).build(); }
/** * Create command line option with short name, long name, and only one argument. * * @param shortOpt short version of option * @param longOpt long version of option * @param argName name of argument for help message * @param desc description of option */ private Option createSingleArgOpt(String shortOpt, String longOpt, String argName, String desc) { return Option.builder(shortOpt).longOpt(longOpt).hasArg().argName(argName).desc(desc).build(); }
private static Options initOptions(Options options) { options.addOption(new Option(StringUtils.EMPTY + HELP_OPTION, "print this message")); options.addOption(Option.builder(StringUtils.EMPTY + PLAIN_PWD_OPTION).argName("plain password").hasArg() .desc("plain password to be encrypted").build()); options.addOption(Option.builder(StringUtils.EMPTY + MASTER_PWD_OPTION).argName("master password").hasArg() .desc("master password used to encrypt the plain password").build()); options.addOption(Option.builder(StringUtils.EMPTY + MASTER_PWD_FILE_OPTION).argName("master password file") .hasArg().desc("file that contains the master password used to encrypt the plain password").build()); options.addOption(new Option(StringUtils.EMPTY + STRONG_ENCRYPTOR_OPTION, "use strong encryptor")); options.addOption(Option.builder(StringUtils.EMPTY + ENCRYPTED_PWD_OPTION).argName("decrypt the input").hasArg().build()); return options; }
.desc("The numeric api-level of the file to generate, e.g. 14 for ICS.") .hasArg(true) .argName("API") .build(); .desc("Uses framework files tagged by <tag>.") .hasArg(true) .argName("tag") .build(); .desc("Uses framework files located in <dir>.") .hasArg(true) .argName("dir") .build(); .desc("Stores framework files into <dir>.") .hasArg(true) .argName("dir") .build(); .longOpt("aapt") .hasArg(true) .argName("loc") .desc("Loads aapt from specified location.") .build(); .desc("Tag frameworks using <tag>.") .hasArg(true) .argName("tag")
options.addOption( Option.builder("i") .argName("in_path") .longOpt("input-file") .hasArg() options.addOption( Option.builder("p") .argName("pkg_name") .longOpt("package") .hasArg() options.addOption( Option.builder("o") .argName("out_path") .longOpt("output-file") .hasArg() options.addOption( Option.builder("h") .argName("help") .longOpt("help") .desc("print usage information") options.addOption( Option.builder("d") .argName("debug") .longOpt("debug") .desc("print debug information")
Option.builder("o").longOpt("output").hasArg().argName("file").desc("Output simplified input to FILE") .build(); Option includeTypesOption = Option.builder("it").longOpt("include-types").hasArg().argName("pattern") .desc("Limit execution to classes and methods which include REGEX, eg: " + "\";->targetMethod\\(\"").build(); Option excludeTypesOption = Option.builder("et").longOpt("exclude-types").hasArg().argName("pattern") .desc("Exclude classes and methods which include REGEX, eg: " + "\"com/android\", applied after include-types").build(); Option maxExecutionTimeOption = Option.builder().longOpt("max-execution-time").hasArg().argName("N") .desc("Give up executing a method after N seconds, default: " + simplifyOpts.getMaxExecutionTime()).build(); Option maxAddressVisitsOption = Option.builder().longOpt("max-address-visits").hasArg().argName("N") .desc("Give up executing a method after visiting the same address N " + "times, limits loops, default: " + simplifyOpts.getMaxAddressVisits()).build(); Option maxCallDepthOption = Option.builder().longOpt("max-call-depth").hasArg().argName("N") .desc("Do not call methods after reaching a call depth of N, limits " + "recursion and long method chains, default: " + simplifyOpts.getMaxCallDepth()).build(); Option maxMethodVisitsOption = Option.builder().longOpt("max-method-visits").hasArg().argName("N") .desc("Give up executing a method after executing N instructions in " + "that method, default: " + simplifyOpts.getMaxMethodVisits())
private OptionDefinition( final String shortOption, final String longOption, final boolean hasArgument, final String argumentNameDisplayed, final String description, final boolean printsHelp, final OptionBehavior behavior) { final Option.Builder builder; if (shortOption == null) { builder = Option.builder(); } else { builder = Option.builder(shortOption); } if (longOption != null) { builder.longOpt(longOption); } if (hasArgument) { builder.hasArg(true); builder.argName(argumentNameDisplayed); } if (description != null) { builder.desc(description); } this.cliOption = builder.build(); this.printsHelp = printsHelp; this.behavior = behavior; }
slots = new Option(shortPrefix + "s", longPrefix + "slots", true, "Number of slots per TaskManager"); dynamicproperties = Option.builder(shortPrefix + "D") .argName("property=value") .numberOfArgs(2) .valueSeparator()
options.addOption(Option.builder("o") .longOpt("output-dir") .argName("<file>") .hasArg() .desc("Where to write (defaults to " + DEFAULT_OUT_DIR + ")")
"a", "desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator, String.class); checkOption(Option.builder("a").desc("desc").argName("arg1").build(), "a", "desc", null, Option.UNINITIALIZED, "arg1", false, false, defaultSeparator, String.class); checkOption(Option.builder("a").desc("desc").optionalArg(false).build(),
.longOpt("db") .hasArg() .argName("table-name") .build()); firstGroup.addOption(Option.builder("f") .longOpt("flat-file") .hasArg() .argName("input.csv") .build()); options.addOptionGroup(firstGroup); .argName("arg1") .build()); secondGroup.addOption(Option.builder("s") secondGroup.addOption(Option.builder("p") .hasArg() .argName("arg1") .build()); options.addOptionGroup(secondGroup);
private Options getOptions() { Options options = new Options(); Option help = Option.builder("h") .longOpt("help") .desc("Prints this help message") .build(); options.addOption(help); buildOptionsGroup(options); Option t = Option.builder("t") .required() .hasArg() .argName("file") .build(); Option w = Option.builder("w") .required() .hasArg() .argName("word") .build(); Option o = Option.builder("o") .hasArg() .argName("directory") .build(); options.addOption(t); options.addOption(w); options.addOption(o); return options; }
/** * Adds the deprecated command line options to the given options collection. * These are split out for purposes of not including them in the help * message. We need to add the deprecated options so as not to break * existing scripts. * * @param options a collection of command line arguments */ @SuppressWarnings({"static-access", "deprecation"}) private void addDeprecatedOptions(final Options options) { final Option proxyServer = Option.builder().argName("url").hasArg().longOpt(ARGUMENT.PROXY_URL) .desc("The proxy url argument is deprecated, use proxyserver instead.") .build(); final Option appName = Option.builder(ARGUMENT.APP_NAME_SHORT).argName("name").hasArg().longOpt(ARGUMENT.APP_NAME) .desc("The name of the project being scanned.") .build(); options.addOption(Option.builder().longOpt("disableNSP") .desc("Disable the NSP Package Analyzer.").build()); options.addOption(proxyServer); options.addOption(appName); }
.longOpt("report-interval") .hasArg() .argName("SECS") .desc("How long in between reported metrics. Will be rounded up to the next 10 sec boundary.\n" + "default " + DEFAULT_REPORT_INTERVAL) .longOpt("report-window") .hasArg() .argName("SECS") .desc("How long of a rolling window should be in each report. Will be rounded up to the next report interval boundary.\n" + "default " + DEFAULT_WINDOW_INTERVAL) .longOpt("reporter") .hasArg() .argName("TYPE:PATH?OPTIONS") .desc("Provide the config for a reporter to run. Supported types are:\n" + "FIXED - a fixed width format that should be more human readable\n"
@Test public void testHelpWithLongOptSeparator() throws Exception { Options options = new Options(); options.addOption( "f", true, "the file" ); options.addOption(Option.builder("s").longOpt("size").desc("the size").hasArg().argName("SIZE").build()); options.addOption(Option.builder().longOpt("age").desc("the age").hasArg().build()); HelpFormatter formatter = new HelpFormatter(); assertEquals(HelpFormatter.DEFAULT_LONG_OPT_SEPARATOR, formatter.getLongOptSeparator()); formatter.setLongOptSeparator("="); assertEquals("=", formatter.getLongOptSeparator()); StringWriter out = new StringWriter(); formatter.printHelp(new PrintWriter(out), 80, "create", "header", options, 2, 2, "footer"); assertEquals( "usage: create" + EOL + "header" + EOL + " --age=<arg> the age" + EOL + " -f <arg> the file" + EOL + " -s,--size=<SIZE> the size" + EOL + "footer" + EOL, out.toString()); }
/** * Create command line option with only long name and multiple arguments. * Multiple arguments can be separated by comma or by space. * * @param longOpt long version of option * @param argName name of argument for help message * @param desc description of option */ private Option createMultiArgOpt(String longOpt, String argName, String desc) { return Option.builder().longOpt(longOpt).hasArgs().argName(argName).valueSeparator(',').desc(desc).build(); }
private static Options createOptions() { final Options options = createHelpOptions(); options.addOption(Option.builder(PLAINTEXT_KEY).longOpt("plaintext").hasArg().required() .desc("Plaintext that needs to be encrypted") .argName("plainText").build()); options.addOption(Option.builder(PASSPHRASE_KEY).longOpt("key").hasArg().required() .desc("Passphrase used for encrypting plain text") .argName("pass phrase").build()); options.addOption(Option.builder(VERSION_KEY).longOpt("version").hasArg().required() .desc("Version it will use to encrypt Version: " + Version.versionStrings()) .argName("crypto version").build()); return options; } }
@Test public void testUsageWithLongOptSeparator() throws Exception { Options options = new Options(); options.addOption( "f", true, "the file" ); options.addOption(Option.builder("s").longOpt("size").desc("the size").hasArg().argName("SIZE").build()); options.addOption(Option.builder().longOpt("age").desc("the age").hasArg().build()); HelpFormatter formatter = new HelpFormatter(); formatter.setLongOptSeparator("="); StringWriter out = new StringWriter(); formatter.printUsage(new PrintWriter(out), 80, "create", options); assertEquals("usage: create [--age=<arg>] [-f <arg>] [-s <SIZE>]", out.toString().trim()); } }
@Before public void setUp() throws Exception { parser = new DefaultParser(); Option optionT1 = Option.builder("t1").hasArg().numberOfArgs(1).optionalArg(true).argName("t1_path").build(); Option optionA = Option.builder("a").hasArg(false).build(); Option optionB = Option.builder("b").hasArg(false).build(); Option optionLast = Option.builder("last").hasArg(false).build(); options = new Options().addOption(optionT1).addOption(optionA).addOption(optionB).addOption(optionLast); }