diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-02-09 16:51:03 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-02-09 16:51:03 +0000 |
commit | 599015e8b071bc8d38779fbfc37961db1ac0f464 (patch) | |
tree | 12cfb8ef316f4021ef81d135a5c331804a817809 /pkgs/lib/sources.nix | |
parent | eebb6f106c445c5661975a60a55b07ad91c6fa47 (diff) |
* Split lib/default.nix into several files, as it had become a big
mess. Also cleaned up some functions:
- foldl appeared broken (it recursively called fold).
- Renamed logicalAND/logicalOR to and/or.
- Removed listOfListsToAttrs, eqStrings: obsolete.
- Removed isInList, which does the same thing as elem.
- stringToCharacters: don't return a "" at the end of the list.
- Renamed concatList to concat, as concatList (singular) is a
misnomer: it takes two lists. Likewise, renamed mergeAttr to
mergeAttrs.
misc.nix still contains a lot of stuff that should be refactored and
moved to other files.
svn path=/nixpkgs/trunk/; revision=14013
Diffstat (limited to '')
-rw-r--r-- | pkgs/lib/sources.nix | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pkgs/lib/sources.nix b/pkgs/lib/sources.nix new file mode 100644 index 000000000000..5a321bce7085 --- /dev/null +++ b/pkgs/lib/sources.nix @@ -0,0 +1,29 @@ +# Functions for copying sources to the Nix store. + +let lib = import ./default.nix; in + +rec { + + + # Bring in a path as a source, filtering out all Subversion and CVS + # directories, as well as backup files (*~). + cleanSource = + let filter = name: type: let baseName = baseNameOf (toString name); in ! ( + # Filter out Subversion and CVS directories. + (type == "directory" && (baseName == ".svn" || baseName == "CVS")) || + # Filter out backup files. + (lib.hasSuffix "~" baseName) + ); + in src: builtins.filterSource filter src; + + + # Get all files ending with the specified suffices from the given + # directory. E.g. `sourceFilesBySuffices ./dir [".xml" ".c"]'. + sourceFilesBySuffices = path: exts: + let filter = name: type: + let base = baseNameOf (toString name); + in type != "directory" && lib.any (ext: lib.hasSuffix ext base) exts; + in builtins.filterSource filter path; + + +} |