Files
PhotonVision/chameleon-server/src/main/java/com/chameleonvision/common/scripting/ScriptEvent.java

36 lines
1.3 KiB
Java
Raw Normal View History

package com.chameleonvision.common.scripting;
import com.chameleonvision.common.logging.DebugLogger;
import com.chameleonvision.common.util.ShellExec;
import java.io.IOException;
public class ScriptEvent {
2020-03-28 21:52:36 -07:00
private static final DebugLogger logger = new DebugLogger(true);
private static final ShellExec executor = new ShellExec(true, true);
2020-03-28 21:52:36 -07:00
public final ScriptConfig config;
2020-03-28 21:52:36 -07:00
public ScriptEvent(ScriptConfig config) {
this.config = config;
}
2020-03-28 21:52:36 -07:00
public int run() throws IOException {
int retVal = executor.executeBashCommand(config.command);
2020-03-28 21:52:36 -07:00
String output = executor.getOutput();
String error = executor.getError();
2020-03-28 21:52:36 -07:00
if (!error.isEmpty()) {
System.err.printf("Error when running \"%s\" script: %s\n", config.eventType.name(), error);
} else if (!output.isEmpty()) {
logger.printInfo(
String.format("Output from \"%s\" script: %s\n", config.eventType.name(), output));
}
logger.printInfo(
String.format(
"Script for %s ran with command line: \"%s\", exit code: %d, output: %s, error: %s\n",
config.eventType.name(), config.command, retVal, output, error));
return retVal;
}
}