Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ private static void checkConfigOwner() {
if (Files.exists(mcDir))
files.add(mcDir.toString());

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

if (showAlert(AlertType.ERROR,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,14 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/high");
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
res.add("nice", "-n", "-5");
res.addAll("nice", "-n", "-5");
}
break;
case ABOVE_NORMAL:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/abovenormal");
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
res.add("nice", "-n", "-1");
res.addAll("nice", "-n", "-1");
}
break;
case NORMAL:
Expand All @@ -89,14 +89,14 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/belownormal");
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
res.add("nice", "-n", "1");
res.addAll("nice", "-n", "1");
}
break;
case LOW:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/low");
} else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.MACOS) {
res.add("nice", "-n", "5");
res.addAll("nice", "-n", "5");
}
break;
}
Expand Down Expand Up @@ -179,7 +179,7 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {

if (addProxyOptions) {
if (options.getProxyOption() == null || options.getProxyOption() == ProxyOption.Default.INSTANCE) {
res.add("-Djava.net.useSystemProxies=", "true");
res.add("-Djava.net.useSystemProxies=true");
} else if (options.getProxyOption() instanceof ProxyOption.Http httpProxy) {
res.add("-Dhttp.proxyHost=" + httpProxy.host());
res.add("-Dhttp.proxyPort=" + httpProxy.port());
Expand Down Expand Up @@ -737,7 +737,7 @@ else if (!isWindows && !(scriptExtension.equals("sh") || scriptExtension.equals(
writer.newLine();
}
writer.newLine();
writer.write(new CommandBuilder().add("cd", "/D", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
writer.write(new CommandBuilder().addAll("cd", "/D", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
} else {
writer.write("#!/usr/bin/env bash");
writer.newLine();
Expand All @@ -746,10 +746,10 @@ else if (!isWindows && !(scriptExtension.equals("sh") || scriptExtension.equals(
writer.newLine();
}
if (commandLine.tempNativeFolder != null) {
writer.write(new CommandBuilder().add("ln", "-s", FileUtils.getAbsolutePath(nativeFolder), commandLine.tempNativeFolder.toString()).toString());
writer.write(new CommandBuilder().addAll("ln", "-s", FileUtils.getAbsolutePath(nativeFolder), commandLine.tempNativeFolder.toString()).toString());
writer.newLine();
}
writer.write(new CommandBuilder().add("cd", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
writer.write(new CommandBuilder().addAll("cd", FileUtils.getAbsolutePath(repository.getRunDirectory(version.getId()))).toString());
}
writer.newLine();
if (StringUtils.isNotBlank(options.getPreLaunchCommand())) {
Expand All @@ -769,7 +769,7 @@ else if (!isWindows && !(scriptExtension.equals("sh") || scriptExtension.equals(
writer.newLine();
}
if (commandLine.tempNativeFolder != null) {
writer.write(new CommandBuilder().add("rm", commandLine.tempNativeFolder.toString()).toString());
writer.write(new CommandBuilder().addAll("rm", commandLine.tempNativeFolder.toString()).toString());
writer.newLine();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,24 @@ private String parse(String s) {
}
}

/**
* Parsing will ignore your manual escaping
*
* @param arg command
* @return this
*/
public CommandBuilder add(String arg) {
raw.add(new Item(arg, true));
return this;
}
Comment on lines +51 to +60
Copy link

Copilot AI Jan 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The javadoc for the new add method should clarify the difference from addAll. Consider updating the documentation to specify that add accepts a single argument while addAll accepts multiple arguments, to help API consumers choose the correct method.

Copilot uses AI. Check for mistakes.

/**
* Parsing will ignore your manual escaping
*
* @param args commands
* @return this
*/
public CommandBuilder add(String... args) {
public CommandBuilder addAll(String... args) {
for (String s : args)
raw.add(new Item(s, true));
return this;
Expand Down
Loading