query
On this page

replaceVars

pkgs.replaceVars

Functor
Docs pulled from | This Revision | about 1 hour ago


replaceVars is a wrapper around the bash function substitute in the stdenv. It allows for terse replacement of names in the specified path, while checking for common mistakes such as naming a replacement that does nothing or forgetting a variable which needs to be replaced.

As with the --subst-var-by flag, names are encoded as @name@ in the provided file at the provided path.

Any unmatched variable names in the file at the provided path will cause a build failure.

By default, any remaining text that matches @[A-Za-z_][0-9A-Za-z_'-]@ in the output after replacement has occurred will cause a build failure. Variables can be excluded from this check by passing "null" for them.

Inputs

src (Store Path String)
The file in which to replace variables.
replacements (AttrsOf String)
Each entry in this set corresponds to a --subst-var-by entry in substitute or null to keep it unchanged.

Example

{ replaceVars }:

replaceVars ./greeting.txt { world = "hello"; }

See ../../test/replace-vars/default.nix for tests of this function.


Noogle detected

This is a Functor

Learn about functors

Implementation

The following is the current implementation of this function.

src: replacements: replaceVarsWith { inherit src replacements; }