lix/src
Shea Levy 0bb8db257d Add exec primop behind allow-unsafe-native-code-during-evaluation.
Execute a given program with the (optional) given arguments as the
user running the evaluation, parsing stdout as an expression to be
evaluated.

There are many use cases for nix that would benefit from being able to
run arbitrary code during evaluation, including but not limited to:

* Automatic git fetching to get a sha256 from a git revision
* git rev-parse HEAD
* Automatic extraction of information from build specifications from
  other tools, particularly language-specific package managers like
  cabal or npm
* Secrets decryption (e.g. with nixops)
* Private repository fetching

Ideally, we would add this functionality in a more principled way to
nix, but in the mean time 'builtins.exec' can be used to get these
tasks done.

The primop is only available when the
'allow-unsafe-native-code-during-evaluation' nix option is true. That
flag also enables the 'importNative' primop, which is strictly more
powerful but less convenient (since it requires compiling a plugin
against the running version of nix).
2017-03-30 08:04:21 -04:00
..
boost Force stack trace for boost format errors 2016-03-02 15:46:07 +01:00
build-remote ssh:// -> ssh-ng://, legacy-ssh:// -> ssh:// 2017-03-16 14:19:32 +01:00
buildenv Fix Fedora build 2016-08-30 13:56:22 +02:00
libexpr Add exec primop behind allow-unsafe-native-code-during-evaluation. 2017-03-30 08:04:21 -04:00
libmain Remove "killing process <pid>" messages 2017-03-16 10:52:28 +01:00
libstore Add exec primop behind allow-unsafe-native-code-during-evaluation. 2017-03-30 08:04:21 -04:00
libutil Fix xz decompression 2017-03-22 11:53:33 +01:00
nix nix copy: Make -r option use the "from" store 2017-03-16 14:25:54 +01:00
nix-build nix-shell/pure: keep environment variable SHLVL 2017-03-12 01:04:21 +01:00
nix-channel nix-channel: Fix --update <CHANNELS> 2016-11-21 15:54:19 +01:00
nix-collect-garbage printMsg(lvlError, ...) -> printError(...) etc. 2016-09-21 16:54:53 +02:00
nix-copy-closure ssh:// -> ssh-ng://, legacy-ssh:// -> ssh:// 2017-03-16 14:19:32 +01:00
nix-daemon TeeSink: Pre-reserve string space 2017-03-01 16:16:04 +01:00
nix-env printMsg(lvlError, ...) -> printError(...) etc. 2016-09-21 16:54:53 +02:00
nix-instantiate Allow setting the state directory as a store parameter 2016-06-02 16:02:48 +02:00
nix-prefetch-url runProgram(): Distinguish between empty input and no input 2017-03-15 16:50:19 +01:00
nix-store Remove dependency on "curl" binary 2017-03-15 16:48:29 +01:00
resolve-system-dependencies printMsg(lvlError, ...) -> printError(...) etc. 2016-09-21 16:54:53 +02:00