nix3-eval - Man Page

evaluate a Nix expression

Warning
This program is experimental and its interface is subject to change.

Synopsis

nix eval [option…] installable

Examples

# nix eval --expr '1 + 2'
# nix eval --json --expr '{ x = 1; }'
{"x":1}
# nix eval --file ./my-nixpkgs hello.name
# nix eval --raw nixpkgs#lib.version
# nix eval --raw nixpkgs#hello
# nix eval nix#checks.x86_64-linux --apply builtins.attrNames

nix eval –write-to ./out –expr ‘{ foo = “bar”; subdir.bla = “123”; }’

cat ./out/foo

bar

cat ./out/subdir/bla

123

Description

This command evaluates the given Nix expression, and prints the result on standard output.

It also evaluates any nested attribute values and list items.

Output format

nix eval can produce output in several formats:

Options

Apply the function expr to each argument.

Produce output in JSON format, suitable for consumption by another program.

Print compact JSON output on a single line, even when the output is a terminal. Some commands may print multiple JSON objects on separate lines.

            See `--pretty`.

Print multi-line, indented JSON output for readability.

            Default: indent if output is to a terminal.

            This option is only effective when `--json` is also specified.

Print strings without quotes or escaping.

Do not instantiate each evaluated derivation. This improves performance, but can cause errors when accessing store paths of derivations during evaluation.

Write a string or attrset of strings to path.

Common evaluation options

  • --arg name expr

Pass the value expr as the argument name to Nix functions.

  • --arg-from-file name path

Pass the contents of file path as the argument name to Nix functions.

  • --arg-from-stdin name

Pass the contents of stdin as the argument name to Nix functions.

  • --argstr name string

Pass the string string as the argument name to Nix functions.

  • --debugger

Start an interactive environment if evaluation fails.

  • --eval-store store-url

The URL of the Nix store to use for evaluation, i.e. to store derivations (.drv files) and inputs referenced by them.

  • --impure

Allow access to mutable paths and repositories.

  • --include / -I path

Add path to search path entries used to resolve lookup paths

This option may be given multiple times.

Paths added through -I take precedence over the nix-path configuration setting and the NIX_PATH environment variable.

  • --override-flake original-ref resolved-ref

Override the flake registries, redirecting original-ref to resolved-ref.

Miscellaneous global options

  • --help

Show usage information.

  • --offline

Disable substituters and consider all previously downloaded files up-to-date.

  • --option name value

Set the Nix configuration setting name to value (overriding nix.conf).

  • --refresh

Consider all previously downloaded files out-of-date.

  • --repair

During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.

  • --version

Show version information.

Options that change the interpretation of installables

  • --expr expr

Interpret installables as attribute paths relative to the Nix expression expr.

  • --file / -f file

Interpret installables as attribute paths relative to the Nix expression stored in file. If file is the character -, then a Nix expression is read from standard input. Implies --impure.

Note

See man nix.conf for overriding configuration settings with command line flags.