diff options
author | Aspen Smith <root@gws.fyi> | 2024-08-11T01·03-0400 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-08-11T16·41+0000 |
commit | e176e1f11a00f77416aca30ec46b75259ca94e42 (patch) | |
tree | 21b4d6dd17920619437b21dcc2df424716cf84fd | |
parent | a781cfcc497fbacbe137cf38dc57859fe59ce3bc (diff) |
feat(tvix/value): Print derivation values specially r/8479
Just like tvix-repl does (except we don't force values when printing them, so... not entirely like tvix-repl does). But it's something. Change-Id: I2e69b08d7d82b0b2d337f1d4c5d87ed28475fa84 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12180 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
-rw-r--r-- | tvix/eval/src/value/attrs.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tvix/eval/src/value/attrs.rs b/tvix/eval/src/value/attrs.rs index 33259c8058eb..128e44a18b59 100644 --- a/tvix/eval/src/value/attrs.rs +++ b/tvix/eval/src/value/attrs.rs @@ -118,6 +118,18 @@ where impl TotalDisplay for NixAttrs { fn total_fmt(&self, f: &mut std::fmt::Formatter<'_>, set: &mut ThunkSet) -> std::fmt::Result { + if let Some(Value::String(s)) = self.select("type") { + if *s == "derivation" { + write!(f, "«derivation ")?; + if let Some(p) = self.select("drvPath") { + p.total_fmt(f, set)?; + } else { + write!(f, "???")?; + } + return write!(f, "»"); + } + } + f.write_str("{ ")?; match &self.0 { |