From 95501c4deea1d945022df18475340232bc6980be Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 13 May 2014 12:54:28 +0200 Subject: [PATCH] nix-instantiate --eval: Apply auto-arguments if the result is a function Fixes #254. --- src/nix-instantiate/nix-instantiate.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/nix-instantiate/nix-instantiate.cc b/src/nix-instantiate/nix-instantiate.cc index afd16b3a5..7cdabcb92 100644 --- a/src/nix-instantiate/nix-instantiate.cc +++ b/src/nix-instantiate/nix-instantiate.cc @@ -52,14 +52,19 @@ void processExpr(EvalState & state, const Strings & attrPaths, state.forceValue(v); PathSet context; - if (evalOnly) + if (evalOnly) { + Value vRes; + if (autoArgs.empty()) + vRes = v; + else + state.autoCallFunction(autoArgs, v, vRes); if (xmlOutput) - printValueAsXML(state, strict, location, v, std::cout, context); + printValueAsXML(state, strict, location, vRes, std::cout, context); else { - if (strict) state.strictForceValue(v); - std::cout << v << std::endl; + if (strict) state.strictForceValue(vRes); + std::cout << vRes << std::endl; } - else { + } else { DrvInfos drvs; getDerivations(state, v, "", autoArgs, drvs, false); foreach (DrvInfos::iterator, i, drvs) {