about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-11-20T17·27+0100
committerEelco Dolstra <edolstra@gmail.com>2017-11-20T17·27+0100
commitf5f29dc2b7c266875fb9cbb0c8d5cdde3ac4a73c (patch)
treefbccbb83113986cfa704689435833ac252781f1a
parent1ff01187e230ddab210b173335e82f286626b16e (diff)
nix eval --raw: Use coerceToString()
Thus,

  $ nix eval --raw '("foo")'
  foo

  $ nix eval --raw nixpkgs.hello
  /nix/store/1y6ckg6khrdsvll54s5spcmf3w6ka9k4-hello-2.10

  $ nix eval --raw '(/etc/resolv.conf)'
  /nix/store/vml92ama92i8mz013nny461mlvg8mvap-resolv.conf
-rw-r--r--src/nix/eval.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nix/eval.cc b/src/nix/eval.cc
index e22128692630..0fbeca1c121d 100644
--- a/src/nix/eval.cc
+++ b/src/nix/eval.cc
@@ -42,6 +42,10 @@ struct CmdEval : MixJSON, InstallablesCommand
                 "To get the current version of Nixpkgs:",
                 "nix eval --raw nixpkgs.lib.nixpkgsVersion"
             },
+            Example{
+                "To print the store path of the Hello package:",
+                "nix eval --raw nixpkgs.hello"
+            },
         };
     }
 
@@ -56,10 +60,10 @@ struct CmdEval : MixJSON, InstallablesCommand
 
         for (auto & i : installables) {
             auto v = i->toValue(*state);
+            PathSet context;
             if (raw) {
-                std::cout << state->forceString(*v);
+                std::cout << state->coerceToString(noPos, *v, context);
             } else if (json) {
-                PathSet context;
                 auto jsonElem = jsonOut->placeholder();
                 printValueAsJSON(*state, true, *v, jsonElem, context);
             } else {