in knative-build/runtimes/java/WhiskSim/src/main/java/org/apache/openwhisk/App.java [49:110]
public static void main( String[] args )
{
System.out.printf("main(String[] args): %s\n", Arrays.toString(args));
// https://commons.apache.org/proper/commons-cli/javadocs/api-release/index.html
// https://commons.apache.org/proper/commons-cli/usage.html
// https://dzone.com/articles/java-command-line-interfaces-part-1-apache-commons
// Option(String opt, String longOpt, boolean hasArg, String description)
try {
System.out.println("Working Directory=[" +
System.getProperty("user.dir") + "]");
// create Options object
Options options = new Options();
// add "Boolean"" options
Option help = new Option( "h", "help", false, "print utility help" );
Option verbose = new Option( "v", "verbose", false, "enable verbose output" );
// Add "Argument" options
Option payload = Option.builder("p")
.hasArg()
.desc("Payload file to use in the HTTP request body")
.required(true)
.longOpt("payload")
.build();
// Add all the options
options.addOption(verbose).addOption(help).addOption(payload);
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse( options, args);
if(cmd.hasOption("h")) {
// print the date and time
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("WhiskSim", options);
return;
}
// get p option value
String payloadFile = cmd.getOptionValue("p");
if(payloadFile != null) {
// print default date
System.out.printf("Payload file: %s\n", payloadFile);
App app = new App();
app.readJSON(payloadFile);
}
else {
// print date for country specified by countryCode
System.err.println("Payload file missing!");
}
} catch (Exception e) {
System.err.println("Unable to create application Options.");
}
System.out.println( "-=> Request sent <=-" );
}