Skip to content

Commit 4100aa8

Browse files
committed
LaunchAppTool: tokenize command string so inline flags work
1 parent d5b0417 commit 4100aa8

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

zsmith/src/main/java/airhacks/zsmith/tools/control/LaunchAppTool.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.IOException;
44
import java.util.ArrayList;
5+
import java.util.Arrays;
56
import java.util.List;
67
import java.util.concurrent.TimeUnit;
78

@@ -89,10 +90,16 @@ public String execute(JSONObject input) {
8990

9091
List<String> buildCommandLine(String arguments) {
9192
var parts = new ArrayList<String>();
92-
parts.add(this.command);
93+
parts.addAll(tokenize(this.command));
9394
if (arguments != null && !arguments.isBlank()) {
94-
parts.addAll(List.of(arguments.trim().split("\\s+")));
95+
parts.addAll(tokenize(arguments));
9596
}
9697
return parts;
9798
}
99+
100+
static List<String> tokenize(String input) {
101+
return Arrays.stream(input.trim().split(" "))
102+
.filter(s -> !s.isEmpty())
103+
.toList();
104+
}
98105
}

zsmith/src/test/java/LaunchAppToolTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,9 @@ void main() {
2727
var badResult = badTool.execute(new JSONObject().put("arguments", "test"));
2828
assert badResult.contains("Error") : "expected error but got: " + badResult;
2929

30+
// command string may carry inline flags — they must be tokenised and executed
31+
var inlineFlagsTool = new LaunchAppTool("echo_with_flag", "echo with -n", "echo -n");
32+
var inlineResult = inlineFlagsTool.execute(new JSONObject().put("arguments", "hello"));
33+
assert "hello".equals(inlineResult) : "expected 'hello' (echo -n suppresses newline) but got: " + inlineResult;
34+
3035
}

zsmith/version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2026.05.05.01
1+
2026.05.07.01

0 commit comments

Comments
 (0)