about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/nix-instantiate/nix-instantiate.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/nix-instantiate/nix-instantiate.cc b/src/nix-instantiate/nix-instantiate.cc
index afd16b3a52bb..7cdabcb92402 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) {