diff options
-rw-r--r-- | nix-repl.cc | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/nix-repl.cc b/nix-repl.cc index 98d27b435ef2..78be0f98c426 100644 --- a/nix-repl.cc +++ b/nix-repl.cc @@ -489,10 +489,18 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m seen.insert(&v); bool isDrv = state.isDerivation(v); - if (isDrv) str << "(derivation "; - str << "{ "; - if (maxDepth > 0) { + if (isDrv) { + str << "«derivation "; + Bindings::iterator i = v.attrs->find(state.sDrvPath); + PathSet context; + Path drvPath = i != v.attrs->end() ? state.coerceToPath(*i->value, context) : "???"; + str << drvPath << "»"; + } + + else if (maxDepth > 0) { + str << "{ "; + typedef std::map<string, Value *> Sorted; Sorted sorted; foreach (Bindings::iterator, i, *v.attrs) @@ -528,11 +536,10 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m str << "; "; } + str << "}"; } else - str << "... "; + str << "{ ... }"; - str << "}"; - if (isDrv) str << ")"; break; } |