about summary refs log tree commit diff
path: root/src/libexpr
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-07-25T13·09+0200
committerEelco Dolstra <edolstra@gmail.com>2017-07-26T15·29+0200
commit4c9ff89c261d84dcc4f88a79654daff2f4790e66 (patch)
tree0a66471c1e3c53d35d583972bc504273301d4ef6 /src/libexpr
parentc94f3d5575d7af5403274d1e9e2f3c9d72989751 (diff)
nix-build/nix-shell: Eliminate call to nix-instantiate / nix-store
Note that this removes the need for a derivation symlink, so the
--drv-path and --add-drv-link flags now do nothing.
Diffstat (limited to 'src/libexpr')
-rw-r--r--src/libexpr/eval.hh2
-rw-r--r--src/libexpr/parser.y7
2 files changed, 9 insertions, 0 deletions
diff --git a/src/libexpr/eval.hh b/src/libexpr/eval.hh
index 1e32db1e86bd..04a36b14cefa 100644
--- a/src/libexpr/eval.hh
+++ b/src/libexpr/eval.hh
@@ -118,6 +118,8 @@ public:
     Expr * parseExprFromString(const string & s, const Path & basePath, StaticEnv & staticEnv);
     Expr * parseExprFromString(const string & s, const Path & basePath);
 
+    Expr * parseStdin();
+
     /* Evaluate an expression read from the given file to normal
        form. */
     void evalFile(const Path & path, Value & v);
diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y
index 62982650a22e..ca3d057451ab 100644
--- a/src/libexpr/parser.y
+++ b/src/libexpr/parser.y
@@ -601,6 +601,13 @@ Expr * EvalState::parseExprFromString(const string & s, const Path & basePath)
 }
 
 
+Expr * EvalState::parseStdin()
+{
+    //Activity act(*logger, lvlTalkative, format("parsing standard input"));
+    return parseExprFromString(drainFD(0), absPath("."));
+}
+
+
 void EvalState::addToSearchPath(const string & s)
 {
     size_t pos = s.find('=');