Archived
0

Zond: скрипт перед запуском сервера

This commit is contained in:
2017-08-13 20:11:10 +03:00
parent 74f57eff3f
commit 85fd76dde1
2 changed files with 30 additions and 1 deletions

View File

@@ -14,7 +14,12 @@ import org.apache.commons.exec.ExecuteWatchdog;
import org.apache.commons.exec.Executor;
import org.fusesource.jansi.Ansi;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
public class ZondCommandHandler implements CommandHandler {
private Executor executor;
@@ -57,6 +62,27 @@ public class ZondCommandHandler implements CommandHandler {
}, "Thread Ticker");
}
private void preStartScript() {
if (Config.getInstance().getString("cmd.prestart").isEmpty())
return;
ProcessBuilder builder = new ProcessBuilder(Arrays.asList(
Config.getInstance().getString("cmd.prestart").split(" ", 2)));
builder.redirectErrorStream(true);
try {
Process process = builder.start();
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
Shell.getInstance().getOutput().println(zondColored(line));
}
process.waitFor();
} catch (IOException | InterruptedException e) {
Shell.getInstance().getOutput()
.println(zondColored("[!] PreStart error: " + e.getMessage(), Ansi.Color.RED));
}
}
@Override
public void handle(String commandLine) {
if (commandLine.startsWith(":")) {
@@ -103,6 +129,8 @@ public class ZondCommandHandler implements CommandHandler {
private void startProcess() {
if (watchdog == null || !watchdog.isWatching()) {
preStartScript();
if (watchdog == null) {
watchdog = new ZondExecuteWatchdog(
ExecuteWatchdog.INFINITE_TIMEOUT,

View File

@@ -10,4 +10,5 @@ pingmonitor.maxlost = 6
#cmd.killer = taskkill /F /PID %PID
#Linux
cmd.killer = kill -KILL %PID
cmd.start = java -jar server.jar
cmd.start = java -jar server.jar
cmd.prestart = echo Hello