More fixes for beacon server start up

This commit is contained in:
Christopher Schnick 2022-12-16 13:53:26 +01:00
parent 5266749c09
commit d949f661ce
3 changed files with 26 additions and 6 deletions

View file

@ -30,11 +30,13 @@ public class BeaconServer {
public static Process tryStartCustom() throws Exception {
var custom = BeaconConfig.getCustomDaemonCommand();
if (custom != null) {
var command =
ShellTypes.getPlatformDefault().executeCommandWithShell(
custom + (BeaconConfig.getDaemonArguments() != null ? " " + BeaconConfig.getDaemonArguments() : ""));
Process process = Runtime.getRuntime().exec(command);
printDaemonOutput(process, command);
var command = ShellTypes.getPlatformDefault()
.executeCommandListWithShell(custom
+ (BeaconConfig.getDaemonArguments() != null
? " " + BeaconConfig.getDaemonArguments()
: ""));
Process process = Runtime.getRuntime().exec(command.toArray(String[]::new));
printDaemonOutput(process, ShellTypes.getPlatformDefault().flatten(command));
return process;
}
return null;
@ -45,7 +47,8 @@ public class BeaconServer {
// Tell daemon that we launched from an external tool
var command = "\"" + daemonExecutable + "\" --external "
+ (BeaconConfig.getDaemonArguments() != null ? BeaconConfig.getDaemonArguments() : "");
Process process = Runtime.getRuntime().exec(ShellTypes.getPlatformDefault().executeCommandWithShell(command));
Process process =
Runtime.getRuntime().exec(ShellTypes.getPlatformDefault().executeCommandWithShell(command));
printDaemonOutput(process, command);
return process;
}

View file

@ -74,6 +74,8 @@ public interface ShellType {
String executeCommandWithShell(String cmd);
List<String> executeCommandListWithShell(String cmd);
List<String> createMkdirsCommand(String dirs);
String createFileReadCommand(String file);

View file

@ -140,6 +140,11 @@ public class ShellTypes {
return "cmd.exe /C " + cmd + "";
}
@Override
public List<String> executeCommandListWithShell(String cmd) {
return List.of("cmd", "/C", cmd);
}
@Override
public List<String> createMkdirsCommand(String dirs) {
return List.of("(", "if", "not", "exist", dirs, "mkdir", dirs, ")");
@ -232,6 +237,11 @@ public class ShellTypes {
return "$env:" + variableName + " = \"" + escapeStringValue(value) + "\"";
}
@Override
public List<String> executeCommandListWithShell(String cmd) {
return List.of("powershell", "-Command", cmd);
}
@Override
public String queryShellProcessId(ShellProcessControl control) throws IOException {
control.writeLine("echo $PID");
@ -387,6 +397,11 @@ public class ShellTypes {
public abstract static class PosixBase implements ShellType {
@Override
public List<String> executeCommandListWithShell(String cmd) {
return List.of(getExecutable(), "-c", cmd);
}
public String getScriptEchoCommand(String s) {
return "#!" + getExecutable() + "\n" + getEchoCommand(s, false) + "\nrm -- \"$0\"";
}