summaryrefslogtreecommitdiffstats
path: root/crates/rebel-resolve/src/context.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/rebel-resolve/src/context.rs')
-rw-r--r--crates/rebel-resolve/src/context.rs23
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>(