Expander is now created by run.

This commit is contained in:
Filipe Rodrigues 2024-08-28 17:12:21 +01:00
parent 2f66dbba54
commit d288880aaa
Signed by: zenithsiz
SSH Key Fingerprint: SHA256:Mb5ppb3Sh7IarBO/sBTXLHbYEOz37hJAlslLQPPAPaU
2 changed files with 10 additions and 4 deletions

View File

@ -82,12 +82,15 @@ pub struct Builder {
impl Builder {
/// Creates a new builder
pub fn new(jobs: usize, rules: &Rules, stop_builds_on_first_err: bool) -> Result<Self, AppError> {
pub fn new(
jobs: usize,
rules: &Rules,
expander: Expander,
stop_builds_on_first_err: bool,
) -> Result<Self, AppError> {
let (event_tx, event_rx) = async_broadcast::broadcast(jobs);
let event_rx = event_rx.deactivate();
let expander = Expander::new();
// Create the rule output tree
let mut rule_output_tree = ExprTree::new();
for (rule_name, rule) in &rules.rules {

View File

@ -136,6 +136,9 @@ async fn run(args: Args) -> ExitResult {
let ast = serde_yaml::from_str::<Ast<'_>>(&zbuild_file).map_err(AppError::parse_yaml(&zbuild_path))?;
tracing::trace!(?ast, "Parsed ast");
// Create the expander
let expander = Expander::new();
// Build the rules
let rules = Rules::new(&zbuild_file, ast);
let rules = Arc::new(rules);
@ -192,7 +195,7 @@ async fn run(args: Args) -> ExitResult {
// Create the builder
// Note: We should stop builds on the first error if we're *not* watching.
let builder = Builder::new(jobs, &rules, !args.watch)
let builder = Builder::new(jobs, &rules, expander, !args.watch)
.context("Unable to create builder")
.map_err(AppError::Other)?;
let builder = Arc::new(builder);