From cb96ed615e48d13c165046363623f0f0e7007796 Mon Sep 17 00:00:00 2001 From: Tom Hunger Date: Fri, 17 Feb 2017 18:56:39 +0000 Subject: [PATCH] lib: Add a function to filter sources by regular expressions. --- lib/sources.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/sources.nix b/lib/sources.nix index f41abe1e1ea..8f312a9db5c 100644 --- a/lib/sources.nix +++ b/lib/sources.nix @@ -26,6 +26,12 @@ rec { cleanSource = builtins.filterSource cleanSourceFilter; + # Filter sources by a list of regular expressions. + # + # E.g. `src = sourceByRegex ./my-subproject [".*\.py$" "^database.sql$"]` + sourceByRegex = src: regexes: builtins.filterSource (path: type: + let relPath = lib.removePrefix (toString src + "/") (toString path); + in lib.any (re: builtins.match re relPath != null) regexes) src; # Get all files ending with the specified suffices from the given # directory or its descendants. E.g. `sourceFilesBySuffices ./dir