diff options
author | Robert Hensing | 2024-07-05 12:33:57 +0200 |
---|---|---|
committer | Robert Hensing | 2024-07-28 23:17:18 +0200 |
commit | 7237aa700f6b73743a0671873877fa889c8db1ca (patch) | |
tree | de52dfeabbad1e64327d34de385adc1066d744a8 /doc | |
parent | bde2e05c7043a71ba1272b5849e94906c95592ee (diff) |
devShellTools: Docs, fix args env
Diffstat (limited to 'doc')
-rw-r--r-- | doc/build-helpers/dev-shell-tools.chapter.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/build-helpers/dev-shell-tools.chapter.md b/doc/build-helpers/dev-shell-tools.chapter.md index 21636df8017b..0168ea39f7aa 100644 --- a/doc/build-helpers/dev-shell-tools.chapter.md +++ b/doc/build-helpers/dev-shell-tools.chapter.md @@ -27,3 +27,49 @@ devShellTools.valueToString (builtins.toFile "foo" "bar") devShellTools.valueToString false => "" ``` + +::: + +## `devShellTools.unstructuredDerivationInputEnv` {#sec-devShellTools-unstructuredDerivationInputEnv} + +Convert a set of derivation attributes (as would be passed to [`derivation`]) to a set of environment variables that can be used in a shell script. +This function does not support `__structuredAttrs`, but does support `passAsFile`. + +:::{.example} +## `unstructuredDerivationInputEnv` usage example + +```nix +devShellTools.unstructuredDerivationInputEnv { + drvAttrs = { + name = "foo"; + buildInputs = [ hello figlet ]; + builder = bash; + args = [ "-c" "${./builder.sh}" ]; + }; +} +=> { + name = "foo"; + buildInputs = "/nix/store/...-hello /nix/store/...-figlet"; + builder = "/nix/store/...-bash"; +} +``` + +Note that `args` is not included, because Nix does not added it to the builder process environment. + +::: + +## `devShellTools.derivationOutputEnv` {#sec-devShellTools-derivationOutputEnv} + +Takes the relevant parts of a derivation and returns a set of environment variables, that would be present in the derivation. + +:::{.example} +## `derivationOutputEnv` usage example + +```nix +let + pkg = hello; +in +devShellTools.derivationOutputEnv { outputList = pkg.outputs; outputMap = pkg; } +``` + +::: |