Skip to content

Commit ba5e633

Browse files
authored
refactor: update CommandBuilder methods to use addAll for multiple arguments (#5275)
1 parent 55cbb6c commit ba5e633

3 files changed

Lines changed: 22 additions & 11 deletions

File tree

HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ private static void checkConfigOwner() {
253253
if (Files.exists(mcDir))
254254
files.add(mcDir.toString());
255255

256-
String command = new CommandBuilder().add("sudo", "chown", "-R", userName).addAll(files).toString();
256+
String command = new CommandBuilder().addAll("sudo", "chown", "-R", userName).addAll(files).toString();
257257
ButtonType copyAndExit = new ButtonType(i18n("button.copy_and_exit"));
258258

259259
if (showAlert(AlertType.ERROR,

HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,14 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {
7272
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
7373
// res.add("cmd", "/C", "start", "unused title", "/B", "/high");
7474
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
75-
res.add("nice", "-n", "-5");
75+
res.addAll("nice", "-n", "-5");
7676
}
7777
break;
7878
case ABOVE_NORMAL:
7979
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
8080
// res.add("cmd", "/C", "start", "unused title", "/B", "/abovenormal");
8181
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
82-
res.add("nice", "-n", "-1");
82+
res.addAll("nice", "-n", "-1");
8383
}
8484
break;
8585
case NORMAL:
@@ -89,14 +89,14 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {
8989
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
9090
// res.add("cmd", "/C", "start", "unused title", "/B", "/belownormal");
9191
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
92-
res.add("nice", "-n", "1");
92+
res.addAll("nice", "-n", "1");
9393
}
9494
break;
9595
case LOW:
9696
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
9797
// res.add("cmd", "/C", "start", "unused title", "/B", "/low");
9898
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
99-
res.add("nice", "-n", "5");
99+
res.addAll("nice", "-n", "5");
100100
}
101101
break;
102102
}
@@ -179,7 +179,7 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {
179179

180180
if (addProxyOptions) {
181181
if (options.getProxyOption() == null || options.getProxyOption() == ProxyOption.Default.INSTANCE) {
182-
res.add("-Djava.net.useSystemProxies=", "true");
182+
res.add("-Djava.net.useSystemProxies=true");
183183
} else if (options.getProxyOption() instanceof ProxyOption.Http httpProxy) {
184184
res.add("-Dhttp.proxyHost=" + httpProxy.host());
185185
res.add("-Dhttp.proxyPort=" + httpProxy.port());
@@ -737,7 +737,7 @@ else if (!isWindows && !(scriptExtension.equals("sh") || scriptExtension.equals(
737737
writer.newLine();
738738
}
739739
writer.newLine();
740-
writer.write(new CommandBuilder().add("cd", "/D", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
740+
writer.write(new CommandBuilder().addAll("cd", "/D", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
741741
} else {
742742
writer.write("#!/usr/bin/env bash");
743743
writer.newLine();
@@ -746,10 +746,10 @@ else if (!isWindows && !(scriptExtension.equals("sh") || scriptExtension.equals(
746746
writer.newLine();
747747
}
748748
if (commandLine.tempNativeFolder != null) {
749-
writer.write(new CommandBuilder().add("ln", "-s", FileUtils.getAbsolutePath(nativeFolder), commandLine.tempNativeFolder.toString()).toString());
749+
writer.write(new CommandBuilder().addAll("ln", "-s", FileUtils.getAbsolutePath(nativeFolder), commandLine.tempNativeFolder.toString()).toString());
750750
writer.newLine();
751751
}
752-
writer.write(new CommandBuilder().add("cd", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
752+
writer.write(new CommandBuilder().addAll("cd", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
753753
}
754754
writer.newLine();
755755
if (StringUtils.isNotBlank(options.getPreLaunchCommand())) {
@@ -769,7 +769,7 @@ else if (!isWindows && !(scriptExtension.equals("sh") || scriptExtension.equals(
769769
writer.newLine();
770770
}
771771
if (commandLine.tempNativeFolder != null) {
772-
writer.write(new CommandBuilder().add("rm", commandLine.tempNativeFolder.toString()).toString());
772+
writer.write(new CommandBuilder().addAll("rm", commandLine.tempNativeFolder.toString()).toString());
773773
writer.newLine();
774774
}
775775
}

HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/CommandBuilder.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,24 @@ private String parse(String s) {
4848
}
4949
}
5050

51+
/**
52+
* Parsing will ignore your manual escaping
53+
*
54+
* @param arg command
55+
* @return this
56+
*/
57+
public CommandBuilder add(String arg) {
58+
raw.add(new Item(arg, true));
59+
return this;
60+
}
61+
5162
/**
5263
* Parsing will ignore your manual escaping
5364
*
5465
* @param args commands
5566
* @return this
5667
*/
57-
public CommandBuilder add(String... args) {
68+
public CommandBuilder addAll(String... args) {
5869
for (String s : args)
5970
raw.add(new Item(s, true));
6071
return this;

0 commit comments

Comments
 (0)