lib.sources: source filtering functions

lib.sources.commitIdFromGitRepo

Get the commit id of a git repo.

path

Function argument

Example

lib.sources.commitIdFromGitRepo usage example

commitIdFromGitRepo <nixpkgs/.git>

Located at lib/sources.nix:271 in <nixpkgs>.

lib.sources.cleanSource

Filters a source tree removing version control files and directories using cleanSourceFilter.

src

Function argument

Example

lib.sources.cleanSource usage example

cleanSource ./.

Located at lib/sources.nix:271 in <nixpkgs>.

lib.sources.cleanSourceWith

Like builtins.filterSource, except it will compose with itself, allowing you to chain multiple calls together without any intermediate copies being put in the nix store.

structured function argument

: src

A path or cleanSourceWith result to filter and/or rename.

filter

Optional with default value: constant true (include everything) The function will be combined with the && operator such that src.filter is called lazily. For implementing a filter, see https://nixos.org/nix/manual/#builtin-filterSource Type: A function (path -> type -> bool)

name

Optional name to use as part of the store path. This defaults to src.name or otherwise "source".

Example

lib.sources.cleanSourceWith usage example

lib.cleanSourceWith {
  filter = f;
  src = lib.cleanSourceWith {
    filter = g;
    src = ./.;
  };
}
# Succeeds!

builtins.filterSource f (builtins.filterSource g ./.)
# Fails!

Located at lib/sources.nix:271 in <nixpkgs>.

lib.sources.cleanSourceFilter

A basic filter for cleanSourceWith that removes directories of version control system, backup files (*~) and some generated files.

name

Function argument

type

Function argument

Located at lib/sources.nix:271 in <nixpkgs>.

lib.sources.sourceByRegex

Filter sources by a list of regular expressions.

src

Function argument

regexes

Function argument

Example

lib.sources.sourceByRegex usage example

src = sourceByRegex ./my-subproject [".*\.py$" "^database.sql$"]

Located at lib/sources.nix:271 in <nixpkgs>.

lib.sources.sourceFilesBySuffices

Type: sourceLike -> [String] -> Source

Get all files ending with the specified suffices from the given source directory or its descendants, omitting files that do not match any suffix. The result of the example below will include files like ./dir/module.c and ./dir/subdir/doc.xml if present.

src

Path or source containing the files to be returned

exts

A list of file suffix strings

Example

lib.sources.sourceFilesBySuffices usage example

sourceFilesBySuffices ./. [ ".xml" ".c" ]

Located at lib/sources.nix:271 in <nixpkgs>.

lib.sources.trace

Type: sources.trace :: sourceLike -> Source

Add logging to a source, for troubleshooting the filtering behavior.

src

Source to debug. The returned source will behave like this source, but also log its filter invocations.

Located at lib/sources.nix:271 in <nixpkgs>.