2025-02-04 10:18:26 +01:00
|
|
|
package fr.monlouyan.bakefile;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
public class BakeEngine {
|
|
|
|
private BakeCLI cli;
|
|
|
|
private BakefileParser parser;
|
|
|
|
private DependencyResolver resolver;
|
|
|
|
private CommandExecutor executor;
|
|
|
|
|
|
|
|
public BakeEngine(BakeCLI cli) {
|
|
|
|
this.cli = cli;
|
|
|
|
this.parser = new BakefileParser("Bakefile");
|
2025-02-04 16:27:07 +01:00
|
|
|
this.resolver = new DependencyResolver(cli.isDebug());
|
2025-02-04 10:18:26 +01:00
|
|
|
this.executor = new CommandExecutor(cli.isDebug());
|
|
|
|
}
|
|
|
|
|
|
|
|
public void run() {
|
|
|
|
List<Target> targets = parser.parse();
|
|
|
|
List<Target> targetsToBuild = resolver.resolve(targets, cli.getTargets());
|
|
|
|
for (Target target : targetsToBuild) {
|
|
|
|
executor.execute(target);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|