package edu.ualberta.med.biobank.tools;
import jargs.gnu.CmdLineParser;
import jargs.gnu.CmdLineParser.Option;
import jargs.gnu.CmdLineParser.OptionException;
public class GenericAppArgs {
public boolean help = false;
public boolean verbose = false;
public String hostname = "localhost";
public String username = "testuser";
public String password = "test";
public int port = 443;
public String[] remainingArgs;
public boolean error = false;
public String errorMsg;
/*
* Parses the command line arguments and returns them in an AppArgs object.
*/
public GenericAppArgs(String argv[]) {
CmdLineParser parser = new CmdLineParser();
Option helpOpt = parser.addBooleanOption('h', "help");
Option hostnameOpt = parser.addStringOption('H', "hostname");
Option portOpt = parser.addIntegerOption('p', "port");
Option usernameOpt = parser.addStringOption('u', "user");
Option verboseOpt = parser.addBooleanOption('v', "verbose");
Option passwordOpt = parser.addStringOption('w', "password");
try {
parser.parse(argv);
} catch (OptionException e) {
System.out.println(e.getMessage());
System.exit(-1);
}
Boolean help = (Boolean) parser.getOptionValue(helpOpt);
if (help != null) {
this.help = help.booleanValue();
}
Boolean verbose = (Boolean) parser.getOptionValue(verboseOpt);
if (verbose != null) {
this.verbose = verbose.booleanValue();
}
String hostname = (String) parser.getOptionValue(hostnameOpt);
if (hostname != null) {
this.hostname = hostname;
}
Integer port = (Integer) parser.getOptionValue(portOpt);
if (port != null) {
this.port = port.intValue();
}
String password = (String) parser.getOptionValue(passwordOpt);
if (password != null) {
this.password = password;
}
String username = (String) parser.getOptionValue(usernameOpt);
if (username != null) {
this.username = username;
}
remainingArgs = parser.getRemainingArgs();
}
@Override
public String toString() {
return "h: " + hostname + ", p: " + port + ", u: " + username + ", w: "
+ password + ", rArgs: " + remainingArgs.toString() + ", errmsg"
+ errorMsg;
}
}