.\" -*- mode: troff; coding: utf-8 -*- .TH "nix3-print-dev-env" "1" "" .PP \fBWarning\fR: This program is \fBexperimental\fR and its interface is subject to change. .SH Name \fCnix print-dev-env\fR - print shell code that can be sourced by bash to reproduce the build environment of a derivation .SH Synopsis \fCnix print-dev-env\fR [\fIoption\fR\[u2026]] \fIinstallable\fR .SH Examples .IP "\(bu" 2 Apply the build environment of GNU hello to the current shell: .LP .EX # . <(nix print-dev-env nixpkgs#hello) .EE .IP "\(bu" 2 Get the build environment in JSON format: .LP .EX # nix print-dev-env nixpkgs#hello --json .EE .IP The output will look like this: .LP .EX { \(dqbashFunctions\(dq: { \(dqbuildPhase\(dq: \(dq \en runHook preBuild;\en...\(dq, ... }, \(dqvariables\(dq: { \(dqsrc\(dq: { \(dqtype\(dq: \(dqexported\(dq, \(dqvalue\(dq: \(dq/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz\(dq }, \(dqpostUnpackHooks\(dq: { \(dqtype\(dq: \(dqarray\(dq, \(dqvalue\(dq: [\(dq_updateSourceDateEpochFromSourceRoot\(dq] }, ... } } .EE .SH Description This command prints a shell script that can be sourced by \fCbash\fR and that sets the variables and shell functions defined by the build process of \fIinstallable\fR. This allows you to get a similar build environment in your current shell rather than in a subshell (as with \fCnix develop\fR). .PP With \fC--json\fR, the output is a JSON serialisation of the variables and functions defined by the build process. .SH Options .IP "\(bu" 2 \fC--json\fR .br Produce output in JSON format, suitable for consumption by another program. .IP "\(bu" 2 \fC--profile\fR \fIpath\fR .br The profile to update. .IP "\(bu" 2 \fC--redirect\fR \fIinstallable\fR \fIoutputs-dir\fR .br Redirect a store path to a mutable location. .LP \fBCommon evaluation options:\fR .IP "\(bu" 2 \fC--arg\fR \fIname\fR \fIexpr\fR .br Pass the value \fIexpr\fR as the argument \fIname\fR to Nix functions. .IP "\(bu" 2 \fC--argstr\fR \fIname\fR \fIstring\fR .br Pass the string \fIstring\fR as the argument \fIname\fR to Nix functions. .IP "\(bu" 2 \fC--eval-store\fR \fIstore-url\fR .br The Nix store to use for evaluations. .IP "\(bu" 2 \fC--impure\fR .br Allow access to mutable paths and repositories. .IP "\(bu" 2 \fC--include\fR / \fC-I\fR \fIpath\fR .br Add \fIpath\fR to the list of locations used to look up \fC<...>\fR file names. .IP "\(bu" 2 \fC--override-flake\fR \fIoriginal-ref\fR \fIresolved-ref\fR .br Override the flake registries, redirecting \fIoriginal-ref\fR to \fIresolved-ref\fR. .LP \fBCommon flake-related options:\fR .IP "\(bu" 2 \fC--commit-lock-file\fR .br Commit changes to the flake\[u2019]s lock file. .IP "\(bu" 2 \fC--inputs-from\fR \fIflake-url\fR .br Use the inputs of the specified flake as registry entries. .IP "\(bu" 2 \fC--no-registries\fR .br Don\[u2019]t allow lookups in the flake registries. This option is deprecated; use \fC--no-use-registries\fR. .IP "\(bu" 2 \fC--no-update-lock-file\fR .br Do not allow any updates to the flake\[u2019]s lock file. .IP "\(bu" 2 \fC--no-write-lock-file\fR .br Do not write the flake\[u2019]s newly generated lock file. .IP "\(bu" 2 \fC--override-input\fR \fIinput-path\fR \fIflake-url\fR .br Override a specific flake input (e.g. \fCdwarffs/nixpkgs\fR). This implies \fC--no-write-lock-file\fR. .IP "\(bu" 2 \fC--recreate-lock-file\fR .br Recreate the flake\[u2019]s lock file from scratch. .IP "\(bu" 2 \fC--update-input\fR \fIinput-path\fR .br Update a specific flake input (ignoring its previous entry in the lock file). .LP \fBOptions that change the interpretation of installables:\fR .IP "\(bu" 2 \fC--derivation\fR .br Operate on the store derivation rather than its outputs. .IP "\(bu" 2 \fC--expr\fR \fIexpr\fR .br Interpret installables as attribute paths relative to the Nix expression \fIexpr\fR. .IP "\(bu" 2 \fC--file\fR / \fC-f\fR \fIfile\fR .br Interpret installables as attribute paths relative to the Nix expression stored in \fIfile\fR. If \fIfile\fR is the character -, then a Nix expression will be read from standard input.