From 8d5857abbcbd70fdeb50151b7a05edf5673809d3 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Fri, 17 Jul 2020 03:45:29 +0100 Subject: chore(3p/nix): Remove builtins.exec This is a bad idea, it shouldn't exist, nixpkgs doesn't use it. Change-Id: Ic4d1b936d8f059d5c40f0567af165b02427d7e36 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1241 Tested-by: BuildkiteCI Reviewed-by: glittershark --- third_party/nix/src/libexpr/primops.cc | 43 ---------------------------------- third_party/nix/src/libexpr/primops.hh | 2 -- 2 files changed, 45 deletions(-) (limited to 'third_party/nix/src/libexpr') 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 -- cgit 1.4.1