diff options
Diffstat (limited to 'crates/driver/src/context.rs')
-rw-r--r-- | crates/driver/src/context.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/crates/driver/src/context.rs b/crates/driver/src/context.rs index 1c8c0bd..9789e31 100644 --- a/crates/driver/src/context.rs +++ b/crates/driver/src/context.rs @@ -86,15 +86,19 @@ impl<'ctx> Display for TaskRef<'ctx> { write!(f, "{}", self.id.recipe)?; if let Some(pv) = pv_arg { - write!(f, "-{}", pv)?; + write!(f, "@{}", pv)?; } write!(f, ":{}", self.id.task)?; + if host_arg.is_some() || target_arg.is_some() { + write!(f, "/")?; + } + if let Some(host) = host_arg { - write!(f, "@{}", host.short)?; + write!(f, "{}", host.short)?; } if let Some(target) = target_arg { - write!(f, "/{}", target.short)?; + write!(f, ":{}", target.short)?; } Ok(()) } @@ -331,7 +335,7 @@ impl Context { pub fn parse<'ctx>(&'ctx self, s: &str) -> error::Result<TaskRef> { lazy_static! { static ref RE: Regex = Regex::new( - r"^(?P<recipe>[[:word:]-]+):(?P<task>[[:word:]-]+)(?:@(?P<host>[[:word:]-]+))?(?:/(?P<target>[[:word:]-]+))?$", + r"^(?P<recipe>[[:word:]-]+):(?P<task>[[:word:]-]+)(?:/(?P<host>[[:word:]-]+)?(?::(?P<target>[[:word:]-]+))?)?$", ).unwrap(); } |