28 lines
950 B
Java
Raw Normal View History

package fr.monlouyan.bakefile;
import java.io.IOException;
public class CommandExecutor {
private boolean debug;
public CommandExecutor(boolean debug) {
this.debug = debug;
}
public void execute(Target target) {
if (!target.needsUpdate()){
System.out.println("bake: '" + target.getName() + "' is up to date.");
return;
};
try {
System.out.println(target.getCommand());
ProcessBuilder pb = new ProcessBuilder("sh", "-c", target.getCommand());
Process process = pb.start();
int exitCode = process.waitFor();
if (debug) System.out.println("Executed: " + target.getCommand() + " with exit code " + exitCode);
if (exitCode != 0) System.err.println("Error executing " + target.getName());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}