package com.github.monkey.runner;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
/**
*
* @author Alex Chen (apack1001@gmail.com)
*
*/
public class CLIParser {
public String [] deivcesId;
public String singleDuration;
public String seriesDuration;
public String pkgName;
public String user;
public String pkgPath;
public String pkgVersion;
public String unlockCmd;
public boolean parse(String [] args) {
Options options = new Options();
options.addOption("d", "device-id", true, "the id list of the devices which is need to run monkey test");
options.addOption("r", "user-name", true, "user name of this job owner");
options.addOption("v", "pkg-version", true, "version of this application");
options.addOption("n", "pkg-name", true, "package name of this appliacation");
options.addOption("p", "pkg-path", true, "point to an Android application path in the storage");
options.addOption("t", "series-duration", true, "expected total monkey jobs duration (hour)");
options.addOption("s", "single-duration", true, "expected one monkey job duration (hour)");
options.addOption("u", "unlock-cmd-path", true, "point to an unlock script path which must be standalone executable");
options.addOption("h", "help", false, "Output help information!");
String formatstr = "java -jar jarfile [-options/ --options]...\n";
String headerstr = "options are as below:";
CommandLineParser parser = new GnuParser();
HelpFormatter formatter = new HelpFormatter();
CommandLine cmd = null;
try {
cmd = parser.parse( options, args );
} catch (ParseException e) {
formatter.printHelp(formatstr, headerstr, options, "");
return false;
}
if (cmd == null || cmd.hasOption("h") || cmd.getOptions().length == 0) {
formatter.printHelp(formatstr, options);
return false;
}
if (cmd.hasOption("d")) {
this.deivcesId = cmd.getOptionValues("d");
}
if (cmd.hasOption("r")) {
this.user = cmd.getOptionValue("r");
}
if (cmd.hasOption("u")) {
this.unlockCmd = cmd.getOptionValue("u");
}
if (cmd.hasOption("v")) {
this.pkgVersion = cmd.getOptionValue("v");
}
if (cmd.hasOption("n")) {
this.pkgName = cmd.getOptionValue("n");
}
if (cmd.hasOption("p")) {
this.pkgPath = cmd.getOptionValue("p");
}
if (cmd.hasOption("t")) {
this.seriesDuration = cmd.getOptionValue("t");
}
if (cmd.hasOption("s")) {
this.singleDuration = cmd.getOptionValue("s");
}
if (cmd.hasOption("u")) {
this.unlockCmd = cmd.getOptionValue("u");
}
return true;
}
}