diff options
-rw-r--r-- | third_party/nix/src/libexpr/primops.cc | 43 | ||||
-rw-r--r-- | third_party/nix/src/libexpr/primops.hh | 2 |
2 files changed, 0 insertions, 45 deletions
diff --git a/third_party/nix/src/libexpr/primops.cc b/third_party/nix/src/libexpr/primops.cc index d96af55f5caf..6b3eaa4c0898 100644 --- a/third_party/nix/src/libexpr/primops.cc +++ b/third_party/nix/src/libexpr/primops.cc @@ -207,48 +207,6 @@ void prim_importNative(EvalState& state, const Pos& pos, Value** args, * shared object file */ } -/* Execute a program and parse its output */ -void prim_exec(EvalState& state, const Pos& pos, Value** args, Value& v) { - state.forceList(*args[0], pos); - auto elems = args[0]->listElems(); - auto count = args[0]->listSize(); - if (count == 0) { - throw EvalError(format("at least one argument to 'exec' required, at %1%") % - pos); - } - PathSet context; - auto program = state.coerceToString(pos, *elems[0], context, false, false); - Strings commandArgs; - for (unsigned int i = 1; i < args[0]->listSize(); ++i) { - commandArgs.emplace_back( - state.coerceToString(pos, *elems[i], context, false, false)); - } - try { - state.realiseContext(context); - } catch (InvalidPathError& e) { - throw EvalError( - format("cannot execute '%1%', since path '%2%' is not valid, at %3%") % - program % e.path % pos); - } - - auto output = runProgram(program, true, commandArgs); - Expr* parsed; - try { - parsed = state.parseExprFromString(output, pos.file.value()); - } catch (Error& e) { - e.addPrefix(format("While parsing the output from '%1%', at %2%\n") % - program % pos); - throw; - } - try { - state.eval(parsed, v); - } catch (Error& e) { - e.addPrefix(format("While evaluating the output from '%1%', at %2%\n") % - program % pos); - throw; - } -} - /* Return a string representing the type of the expression. */ static void prim_typeOf(EvalState& state, const Pos& pos, Value** args, Value& v) { @@ -2305,7 +2263,6 @@ void EvalState::createBaseEnv() { addConstant("import", v); if (evalSettings.enableNativeCode) { addPrimOp("__importNative", 2, prim_importNative); - addPrimOp("__exec", 1, prim_exec); } addPrimOp("__typeOf", 1, prim_typeOf); addPrimOp("isNull", 1, prim_isNull); diff --git a/third_party/nix/src/libexpr/primops.hh b/third_party/nix/src/libexpr/primops.hh index ad646e4d0b3c..45f63a541911 100644 --- a/third_party/nix/src/libexpr/primops.hh +++ b/third_party/nix/src/libexpr/primops.hh @@ -20,7 +20,5 @@ struct RegisterPrimOp { /* Load a ValueInitializer from a DSO and return whatever it initializes */ void prim_importNative(EvalState& state, const Pos& pos, Value** args, Value& v); -/* Execute a program and parse its output */ -void prim_exec(EvalState& state, const Pos& pos, Value** args, Value& v); } // namespace nix |