summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCedric Beust <cedric@refresh.io>2014-04-07 22:24:08 -0700
committerCedric Beust <cedric@refresh.io>2014-04-07 22:24:08 -0700
commit7c5bf86fc5d5e85d471e3722a39b7a21101b0484 (patch)
tree3741147fc1db2b9ac4dc6ad08aacde3398aefd61 /src
parent65d47c3ae26d8feeda6469f104597c40020446ce (diff)
downloadplatform_external_jcommander-7c5bf86fc5d5e85d471e3722a39b7a21101b0484.tar.gz
platform_external_jcommander-7c5bf86fc5d5e85d471e3722a39b7a21101b0484.tar.bz2
platform_external_jcommander-7c5bf86fc5d5e85d471e3722a39b7a21101b0484.zip
Support for "--".
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/beust/jcommander/JCommander.java5
-rw-r--r--src/test/java/com/beust/jcommander/JCommanderTest.java30
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;