default.nix: use nixpkgs lib
This commit is contained in:
parent
33708ea922
commit
3e37f1fbd4
1 changed files with 5 additions and 13 deletions
18
default.nix
18
default.nix
|
@ -3,16 +3,8 @@
|
||||||
# if evaluating inside the store, import the outputs.nix file
|
# if evaluating inside the store, import the outputs.nix file
|
||||||
|
|
||||||
let
|
let
|
||||||
contains = str: substr: let
|
# Ideally this file should not depend on nixpkgs lib itself, but I like the utilities here
|
||||||
str_length = builtins.stringLength str;
|
lib = (import "${(import ./inputs.nix {}).nixpkgs}/lib");
|
||||||
substr_length = builtins.stringLength substr;
|
|
||||||
listOfPossibleSubstrings = builtins.genList (i: builtins.substring i substr_length str) (str_length - substr_length + 1);
|
|
||||||
in if substr_length > str_length then false else builtins.any (x: x == substr) listOfPossibleSubstrings;
|
|
||||||
|
|
||||||
endsWith = str: substr: let
|
|
||||||
str_length = builtins.stringLength str;
|
|
||||||
substr_length = builtins.stringLength substr;
|
|
||||||
in if substr_length > str_length then false else builtins.substring (str_length - substr_length) str_length str == substr;
|
|
||||||
|
|
||||||
gitignore = builtins.filter (v:
|
gitignore = builtins.filter (v:
|
||||||
# ignore comments and empty lines
|
# ignore comments and empty lines
|
||||||
|
@ -32,11 +24,11 @@ let
|
||||||
if pattern == "*" then true
|
if pattern == "*" then true
|
||||||
else if pattern == ".*" then true
|
else if pattern == ".*" then true
|
||||||
else if pattern == "*.*" then true
|
else if pattern == "*.*" then true
|
||||||
else if builtins.substring 0 2 pattern == "*." then endsWith path (builtins.substring 0 2 pattern)
|
else if builtins.substring 0 2 pattern == "*." then lib.hasSuffix (builtins.substring 0 2 pattern) path
|
||||||
else if contains pattern "*" then abort unsupportedPatternMessage
|
else if lib.hasInfix "*" pattern then abort unsupportedPatternMessage
|
||||||
else if patternLength > 2 && builtins.substring 0 2 pattern == "./" then abort unsupportedPatternMessage
|
else if patternLength > 2 && builtins.substring 0 2 pattern == "./" then abort unsupportedPatternMessage
|
||||||
else if patternLength > 1 && builtins.substring 0 1 pattern == "/" then abort unsupportedPatternMessage
|
else if patternLength > 1 && builtins.substring 0 1 pattern == "/" then abort unsupportedPatternMessage
|
||||||
else contains path pattern
|
else lib.hasInfix pattern path
|
||||||
) gitignore;
|
) gitignore;
|
||||||
|
|
||||||
currentFilePath = (builtins.unsafeGetAttrPos "any" { any = "any"; }).file;
|
currentFilePath = (builtins.unsafeGetAttrPos "any" { any = "any"; }).file;
|
||||||
|
|
Loading…
Reference in a new issue