/** Add an argument to those to be accepted on the command line. * @param argName Name * @param hasValue True if the command takes a (string) value * @return The CommandLine processor object */ public CmdLineArgs add(String argName, boolean hasValue) { return add(new ArgDecl(hasValue, argName)) ; }
/** Test whether the command line had a particular argument * * @param argName * @return this object */ public boolean hasArg(String argName) { return getArg(argName) != null ; }
/** Is the value something that looks like "true" or "yes"? */ public boolean hasValueOfTrue(ArgDecl argDecl) { String x = getValue(argDecl) ; if ( x == null ) return false ; if ( x.equalsIgnoreCase("true") || x.equalsIgnoreCase("t") || x.equalsIgnoreCase("yes") || x.equalsIgnoreCase("y") ) return true ; return false ; }
@Test public void test_Flag1() { String args[] = new String[]{ ""} ; CmdLineArgs cl = new CmdLineArgs(args) ; ArgDecl argA = new ArgDecl(false, "-a") ; cl.add(argA) ; cl.process() ; assertTrue("-a argument found" , ! cl.contains(argA) ) ; }
@Test public void test_Arg2() { String args[] = new String[]{ "-arg=ARG", "filename"} ; CmdLineArgs cl = new CmdLineArgs(args) ; ArgDecl argA = new ArgDecl(true, "arg") ; cl.add(argA) ; cl.process() ; assertTrue("No -arg= argument found" , cl.contains(argA) ) ; assertEquals("", cl.getValue(argA) , "ARG") ; assertEquals("", cl.getArg("arg").getValue() , "ARG") ; }
CmdLineArgs cl = new CmdLineArgs(argv) ; cl.add(helpDecl) ; cl.add(verboseDecl) ; cl.add(versionDecl) ; cl.add(quietDecl) ; cl.add(reduceDecl) ; cl.add(strictDecl) ; cl.add(printDecl) ; cl.process() ; } catch (IllegalArgumentException ex) if ( cl.contains(helpDecl) ) if ( cl.contains(versionDecl) ) boolean verbose = cl.contains(verboseDecl) ; boolean quiet = cl.contains(quietDecl) ; if ( cl.contains(strictDecl) ) ARQ.setStrictMode() ;
CmdLineArgs cla = new CmdLineArgs(args); cla.add(argHelp); cla.add(argPort); cla.add(argJetty); cla.add(argBase); cla.add(argMem); cla.add(argZk); cla.add(argZkConf); cla.add(argZkPort); cla.add(argZkData); cla.add(argS3Bucket); cla.add(argS3Region); cla.add(argS3KeysFile); cla.add(argS3KeysProfile); cla.add(argS3Endpoint); cla.process(); if ( cla.hasPositional() ) cmdLineWarning("Warning: ignoring positional arguments"); if ( cla.contains(argHelp) ) { System.err.println("Usage: server [--port=NNNN | --jetty=FILE] [--base=DIR] [--mem] [--zk=connectionString [--zkPort=NNN] [--zkData=DIR] ]");
addPositional(argStr) ; return ; addPositional(argStr) ; return ; handleUnrecognizedArg(argStr) ; return ; String val = getArg(i + 1) ; addArg(x, val) ; nextArgProcessed = true ; } else addArg(argStr) ;
@Test public void test_Simple1() { String args[] = new String[]{""} ; CmdLineArgs cl = new CmdLineArgs(args) ; cl.process() ; }
private static void zookeeperArgs(CmdLineArgs cla , DeltaServerConfig serverConfig) { String connectionString = cla.getValue(argZk); if ( connectionString == null ) return; if ( cla.contains(argZkPort) || cla.contains(argZkData) || cla.contains(argZkConf) ) { cmdLineWarning("WARNING: Local zookeeper with test memory mode: --zkPort, --zkData and --zkConf ignored"); } else if ( cla.contains(argZkConf) ) { if ( cla.contains(argZkPort) ) cmdLineWarning("WARNING: Local zookeeper: --zkConf present: ignoring --zkPort"); if ( cla.contains(argZkData) ) cmdLineWarning("WARNING: Local zookeeper: --zkConf present: ignoring --zkData"); serverConfig.zkConf = cla.getValue(argZkConf); serverConfig.zkMode = ZkMode.QUORUM; } else if ( cla.contains(argZkPort) || cla.contains(argZkData) ) { if ( ! cla.contains(argZkPort) ) cmdLineError("No ZooKeeper port: need --zkPort=NNNN with --zkData"); if ( ! cla.contains(argZkData) ) cmdLineError("No ZooKeeper data folder: need --zkData=DIR with --zkPort"); if ( cla.contains(argZkConf) ) { cmdLineWarning("WARNING: Local zookeeper: --zkConf not allowed with --zkPort, --zkData"); serverConfig.zkPort = parseZookeeperPort(cla.getValue(argZkPort)); serverConfig.zkData = cla.getValue(argZkData);
/** Choose a port number or return null */ private static Integer chooseServerPort(CmdLineArgs cla) { // The port chosen from this ordered list: // Command line // Environment variable // Default. int port = -1; String portStr = null; if ( cla.contains(argPort) ) portStr = cla.getArg(argPort).getValue(); else // Compatibility portStr = getenv(DeltaConst.ENV_PORT); if ( portStr == null ) return DeltaConst.PORT; //cmdLineError("No server port given: use --%s", argPort.getKeyName()); try { port = Integer.parseInt(portStr); if ( port <= 0 ) throw new NumberFormatException(); return port; } catch (NumberFormatException ex) { cmdLineError("Failed to parse the port number: %s", portStr); return null; } }
public void set(CmdLineArgs cmdLineArgs) { for ( Pair<String, String> p : namedArgs ) cmdLineArgs.addArg(p.car(), p.cdr()) ; for ( String a : posnArgs ) cmdLineArgs.addPositional(a) ; }
/** Test whether an argument was seen more than once */ public boolean containsMultiple(String s) { return getValues(s).size() > 1 ; }
/** * Add a named argument which has no value. * @param name * @return this */ public CmdLineArgs addArg(String name) { return addArg(name, null) ; }
@Test public void test_Arg1() { String args[] = new String[]{ ""} ; CmdLineArgs cl = new CmdLineArgs(args) ; ArgDecl argA = new ArgDecl(true, "-arg") ; cl.add(argA) ; cl.process() ; assertTrue("-arg argument found" , ! cl.contains(argA) ) ; }
@Test public void test_Arg2() { String args[] = new String[]{ "-arg=ARG", "filename"} ; CmdLineArgs cl = new CmdLineArgs(args) ; ArgDecl argA = new ArgDecl(true, "arg") ; cl.add(argA) ; cl.process() ; assertTrue("No -arg= argument found" , cl.contains(argA) ) ; assertEquals("", cl.getValue(argA) , "ARG") ; assertEquals("", cl.getArg("arg").getValue() , "ARG") ; }
CmdLineArgs cl = new CmdLineArgs(argv) ; cl.add(helpDecl) ; cl.add(verboseDecl) ; cl.add(versionDecl) ; cl.add(quietDecl) ; cl.add(reduceDecl) ; cl.add(strictDecl) ; cl.add(printDecl) ; cl.process() ; } catch (IllegalArgumentException ex) if ( cl.contains(helpDecl) ) if ( cl.contains(versionDecl) ) boolean verbose = cl.contains(verboseDecl) ; boolean quiet = cl.contains(quietDecl) ; if ( cl.contains(strictDecl) ) ARQ.setStrictMode() ;
addPositional(argStr) ; return ; addPositional(argStr) ; return ; handleUnrecognizedArg(argStr) ; return ; String val = getArg(i + 1) ; addArg(x, val) ; nextArgProcessed = true ; } else addArg(argStr) ;
@Test public void test_Simple1() { String args[] = new String[]{""} ; CmdLineArgs cl = new CmdLineArgs(args) ; cl.process() ; }
/** Test whether an argument was seen more than once */ public boolean containsMultiple(ArgDecl argDecl) { return getValues(argDecl).size() > 1 ; }