guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

54/64: nix-instantiate --eval: Apply auto-arguments if the result is a f


From: Ludovic Courtès
Subject: 54/64: nix-instantiate --eval: Apply auto-arguments if the result is a function
Date: Mon, 05 Jan 2015 16:39:10 +0000

civodul pushed a commit to branch nix
in repository guix.

commit 95501c4deea1d945022df18475340232bc6980be
Author: Eelco Dolstra <address@hidden>
Date:   Tue May 13 12:54:28 2014 +0200

    nix-instantiate --eval: Apply auto-arguments if the result is a function
    
    Fixes #254.
---
 src/nix-instantiate/nix-instantiate.cc |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/nix-instantiate/nix-instantiate.cc 
b/src/nix-instantiate/nix-instantiate.cc
index afd16b3..7cdabcb 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) {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]