nix-super/src/nix/print-dev-env.md
Valentin Gagarin 2af9fd20c6 clarify definition of "installable"
the term was hard to discover, as its definition and explanation were in
a very long document lacking an overview section.
search did not help because it occurs so often.

- clarify wording in the definition
- add an overview of installable types
- add "installable" to glossary
- link to definition from occurrences of the term
- be more precise about where store derivation outputs are processed
- installable Nix expressions must evaluate to a derivation

Co-authored-by: Adam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com>
2023-03-05 01:46:17 +01:00

50 lines
1.1 KiB
Markdown

R""(
# Examples
* Apply the build environment of GNU hello to the current shell:
```console
# . <(nix print-dev-env nixpkgs#hello)
```
* Get the build environment in JSON format:
```console
# nix print-dev-env nixpkgs#hello --json
```
The output will look like this:
```json
{
"bashFunctions": {
"buildPhase": " \n runHook preBuild;\n...",
...
},
"variables": {
"src": {
"type": "exported",
"value": "/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz"
},
"postUnpackHooks": {
"type": "array",
"value": ["_updateSourceDateEpochFromSourceRoot"]
},
...
}
}
```
# Description
This command prints a shell script that can be sourced by `bash` and
that sets the variables and shell functions defined by the build
process of [*installable*](./nix.md#installables). This allows you to get a similar build
environment in your current shell rather than in a subshell (as with
`nix develop`).
With `--json`, the output is a JSON serialisation of the variables and
functions defined by the build process.
)""