Skip to content

Commit

Permalink
Merge pull request #930 from atlassian/accept-repeated-arguments
Browse files Browse the repository at this point in the history
Accept repeated values for regular arguments.
  • Loading branch information
eirslett committed Nov 26, 2020
2 parents cdc515a + 433f808 commit 53aab8a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ List<String> parse(String args) {
addArgument(argumentBuilder, arguments);

for (String argument : this.additionalArguments) {
addArgument(argument, arguments);
if (!arguments.contains(argument)) {
arguments.add(argument);
}
}

return new ArrayList<>(arguments);
Expand All @@ -74,14 +76,8 @@ List<String> parse(String args) {
private static void addArgument(StringBuilder argumentBuilder, List<String> arguments) {
if (argumentBuilder.length() > 0) {
String argument = argumentBuilder.toString();
addArgument(argument, arguments);
argumentBuilder.setLength(0);
}
}

private static void addArgument(String argument, List<String> arguments) {
if (!arguments.contains(argument)) {
arguments.add(argument);
argumentBuilder.setLength(0);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ public void testArgumentsWithMixedQuotes() {
assertArrayEquals(new Object[] { "foo", "\"bar 'foo\"", "'bar " }, parser.parse("foo \"bar 'foo\" 'bar ").toArray());
}

@Test
public void repeatedArgumentsAreAccepted() {
ArgumentsParser parser = new ArgumentsParser();

assertArrayEquals(new Object[] { "echo", "echo" }, parser.parse("echo echo").toArray());
}

@Test
public void testAdditionalArgumentsNoIntersection() {
ArgumentsParser parser = new ArgumentsParser(Arrays.asList("foo", "bar"));
Expand Down

0 comments on commit 53aab8a

Please sign in to comment.