diff options
Diffstat (limited to 'crates/rebel-resolve/src/context.rs')
-rw-r--r-- | crates/rebel-resolve/src/context.rs | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/crates/rebel-resolve/src/context.rs b/crates/rebel-resolve/src/context.rs index 88d5deb..996d981 100644 --- a/crates/rebel-resolve/src/context.rs +++ b/crates/rebel-resolve/src/context.rs @@ -14,7 +14,6 @@ use rebel_common::{ string_hash::ArchiveHash, types::TaskIDRef, }; -use rebel_parse::{self as parse, TaskFlags}; use crate::{ args::*, @@ -362,16 +361,12 @@ impl Context { }) } - pub fn parse(&self, s: &str) -> error::Result<(TaskRef, TaskFlags)> { - let (parsed, flags) = parse::task_ref_with_flags(s) - .ok() - .context("Invalid task syntax")?; - - let id = TaskIDRef { - recipe: parsed.id.recipe, - task: parsed.id.task, - }; - + pub fn lookup( + &self, + id: TaskIDRef, + host: Option<&str>, + target: Option<&str>, + ) -> error::Result<TaskRef> { let (ctx_recipe, recipe_tasks) = self .tasks .get_key_value(id.recipe) @@ -386,7 +381,7 @@ impl Context { let mut args = self.globals.clone(); - if let Some(host) = parsed.args.host { + if let Some(host) = host { let plat = self .platforms .get(host) @@ -394,7 +389,7 @@ impl Context { args.set("host", Some(plat)); args.set("target", Some(plat)); } - if let Some(target) = parsed.args.target { + if let Some(target) = target { let plat = self .platforms .get(target) @@ -406,7 +401,7 @@ impl Context { .task_ref(ctx_id, &args) .with_context(|| format!("Failed to instantiate task {}", id))?; - Ok((task_ref, flags)) + Ok(task_ref) } fn map_args<'ctx, 'args>( |