I'd suggest to ask that on the dev list ...a few cli issues have been brought up there lately

cheers
--
Torsten

On 31.07.2007, at 18:28, Russel Winder wrote:

I think I must be misunderstanding something about the hasArgs.  The
program that follows produces:

    [javac] Compiling 1 source file
to /home/users/russel/Progs/OddsByLanguage/Java/CommonsCLI_Test
     [java] -D blah=Hello
     [java] -D burble=thing
     [java] -D flob=adob
     [java] -D print
     [java]
     [java] usage: Usage statement
     [java]  -D    Definition of something.

in both 1.0 and 1.1. I had assumed that print would not be treated a a
-D option.  Alternatively this is a bug in which case I will create a
JIRA issue -- unlikely I suspect though, much more likely to be
something stupid on my part.

Thanks.

import java.io.PrintWriter ;

import org.apache.commons.cli.CommandLine ;
import org.apache.commons.cli.OptionBuilder ;
import org.apache.commons.cli.GnuParser ;
import org.apache.commons.cli.HelpFormatter ;
import org.apache.commons.cli.Option ;
import org.apache.commons.cli.Options ;
import org.apache.commons.cli.ParseException ;
import org.apache.commons.cli.PosixParser ;

public class Trial {
private void execute ( final String[] commandLine ) throws ParseException {
    final Options options = new Options ( ) ;
options.addOption ( OptionBuilder.hasArgs ( ).withDescription ( "Definition of something." ).create ( 'D' ) ) ; final CommandLine line = ( new GnuParser ( ) ).parse ( options , commandLine ) ;
    String[] results =  line.getOptionValues ( 'D' ) ;
if ( results != null ) { for ( String s : results ) { System.out.println ( "-D " + s ) ; } }
    String[] theRest = line.getArgs ( ) ;
    for ( String s : theRest ) { System.out.print ( s + " " ) ; }
    System.out.println ( ) ;
    final HelpFormatter formatter = new HelpFormatter ( ) ;
    final PrintWriter writer =  new PrintWriter ( System.out ) ;
//formatter.printHelp ( writer , formatter.defaultWidth , "Usage statement" , "" , options , formatter.defaultLeftPad , formatter.defaultDescPad , "" ) ; formatter.printHelp ( writer , formatter.getWidth ( ) , "Usage statement" , "" , options , formatter.getLeftPadding ( ) , formatter.getDescPadding ( ) , "" ) ;
    writer.flush ( ) ;
  }
public static void main ( final String[] args ) throws ParseException {
    final Trial trial = new Trial ( ) ;
trial.execute ( new String[] { "-Dblah=Hello" , "- Dburble=thing" , "-Dflob=adob" , "print" } ) ;
  }
}


--
Russel.
====================================================
Dr Russel Winder
41 Buckmaster Road               m: +44 7770 465 077
London SW11 1EN, UK              t: +44 20 7585 2200


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to