diff options
author | Cedric Beust <cedric@refresh.io> | 2014-04-07 22:24:08 -0700 |
---|---|---|
committer | Cedric Beust <cedric@refresh.io> | 2014-04-07 22:24:08 -0700 |
commit | 7c5bf86fc5d5e85d471e3722a39b7a21101b0484 (patch) | |
tree | 3741147fc1db2b9ac4dc6ad08aacde3398aefd61 | |
parent | 65d47c3ae26d8feeda6469f104597c40020446ce (diff) | |
download | platform_external_jcommander-7c5bf86fc5d5e85d471e3722a39b7a21101b0484.tar.gz platform_external_jcommander-7c5bf86fc5d5e85d471e3722a39b7a21101b0484.tar.bz2 platform_external_jcommander-7c5bf86fc5d5e85d471e3722a39b7a21101b0484.zip |
Support for "--".
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 5 | ||||
-rw-r--r-- | src/test/java/com/beust/jcommander/JCommanderTest.java | 30 |
2 files changed, 17 insertions, 18 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 08efd8b..3884976 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -685,7 +685,7 @@ public class JCommander { JCommander jc = findCommandByAlias(arg); int increment = 1; - if (isOption(args, a) && jc == null) { + if (! "--".equals(a) && isOption(args, a) && jc == null) { // // Option // @@ -744,6 +744,9 @@ public class JCommander { // Main parameter // if (! Strings.isStringEmpty(arg)) { + if ("--".equals(arg)) { + a = trim(args[++i]); + } if (m_commands.isEmpty()) { // // Regular (non-command) parsing diff --git a/src/test/java/com/beust/jcommander/JCommanderTest.java b/src/test/java/com/beust/jcommander/JCommanderTest.java index 63964ae..978f0d6 100644 --- a/src/test/java/com/beust/jcommander/JCommanderTest.java +++ b/src/test/java/com/beust/jcommander/JCommanderTest.java @@ -18,7 +18,6 @@ package com.beust.jcommander; -import com.beust.jcommander.args.AlternateNamesForListArgs; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileWriter; @@ -41,6 +40,7 @@ import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import com.beust.jcommander.args.AlternateNamesForListArgs; import com.beust.jcommander.args.Args1; import com.beust.jcommander.args.Args1Setter; import com.beust.jcommander.args.Args2; @@ -1015,31 +1015,27 @@ public class JCommanderTest { Assert.assertEquals(a.endpoint, Lists.newArrayList("dev")); } - public void a() { + public void dashDashParameter() { class Arguments { - @Parameter(names = { "-help", "-h" }, arity = 0, description = "Show this help message") - public Boolean help = false; - - @Parameter(names = { "-verbose", "-v" }, arity = 0, description = "Verbose output mode") - public Boolean verbose = false; - - @Parameter(names = { "-target" }, arity = 1, description = "Target directory", required = true) - public File target; - - @Parameter(names = { "-input" }, variableArity = true, description = "Input paths", required = true) - public List<String> paths; + @Parameter(names = { "-name" }) + public String name; + @Parameter + public List<String> mainParameters; } + Arguments a = new Arguments(); new JCommander(a, new String[] { - "-input", "example_in1", "example_in2", "-target", "example_out" } + "-name", "theName", "--", "param1", "param2"} ); - Assert.assertEquals(a.paths, Lists.newArrayList("example_in1", "example_in2")); - Assert.assertEquals(a.target, new File("example_out")); + Assert.assertEquals(a.name, "theName"); + Assert.assertEquals(a.mainParameters.size(), 2); + Assert.assertEquals(a.mainParameters.get(0), "param1"); + Assert.assertEquals(a.mainParameters.get(1), "param2"); } @Test(enabled = false) public static void main(String[] args) throws Exception { - new JCommanderTest().a(); +// new JCommanderTest().a(); // class A { // @Parameter(names = "-short", required = true) // List<String> parameters; |