2025-02-04 10:18:26 +01:00
|
|
|
package fr.monlouyan.bakefile;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
public class BakeEngine {
|
|
|
|
|
private BakefileParser parser;
|
|
|
|
|
private DependencyResolver resolver;
|
|
|
|
|
private CommandExecutor executor;
|
|
|
|
|
|
2025-02-04 19:27:56 +01:00
|
|
|
public BakeEngine() {
|
2025-02-04 10:18:26 +01:00
|
|
|
this.parser = new BakefileParser("Bakefile");
|
2025-02-04 17:31:25 +01:00
|
|
|
this.resolver = new DependencyResolver(BakeCLI.isDebug());
|
|
|
|
|
this.executor = new CommandExecutor(BakeCLI.isDebug());
|
2025-02-04 10:18:26 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void run() {
|
2025-02-04 17:31:25 +01:00
|
|
|
List<Rule> rules = parser.parse();
|
2025-02-04 19:27:56 +01:00
|
|
|
List<Rule> rulesToBuild = resolver.resolve(rules, BakeCLI.getTargets());
|
2025-02-04 17:31:25 +01:00
|
|
|
|
|
|
|
|
for (Rule rule : rulesToBuild) {
|
|
|
|
|
executor.execute(rule);
|
2025-02-04 10:18:26 +01:00
|
|
|
}
|
|
|
|
|
}
|
2025-02-04 17:31:25 +01:00
|
|
|
}
|