query
On this page

cleanSourceFilter

lib.cleanSourceFilter

Docs pulled from | This Revision | 9 minutes ago


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

Inputs

name

1. Function argument

type

2. Function argument


Noogle detected

Aliases

Implementation

The following is the current implementation of this function.

cleanSourceFilter = name: type: let baseName = baseNameOf (toString name); in ! (
    # Filter out version control software files/directories
    (baseName == ".git" || type == "directory" && (baseName == ".svn" || baseName == "CVS" || baseName == ".hg")) ||
    # Filter out editor backup / swap files.
    lib.hasSuffix "~" baseName ||
    match "^\\.sw[a-z]$" baseName != null ||
    match "^\\..*\\.sw[a-z]$" baseName != null ||

    # Filter out generates files.
    lib.hasSuffix ".o" baseName ||
    lib.hasSuffix ".so" baseName ||
    # Filter out nix-build result symlinks
    (type == "symlink" && lib.hasPrefix "result" baseName) ||
    # Filter out sockets and other types of files we can't have in the store.
    (type == "unknown")
  );