mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-02-07 06:19:00 +00:00
lib: set as fixed point
This commit is contained in:
parent
8377dba214
commit
29b7b302e1
@ -1,21 +1,42 @@
|
||||
# All of the custom functions suitable for all environments.
|
||||
# The entrypoint for our custom library set.
|
||||
{ lib }:
|
||||
|
||||
rec {
|
||||
/* Count the attributes with the given predicate.
|
||||
lib.makeExtensible
|
||||
(self:
|
||||
rec {
|
||||
/* Count the attributes with the given predicate.
|
||||
|
||||
Examples:
|
||||
countAttrs (name: value: value) { d = true; f = true; a = false; }
|
||||
=> 2
|
||||
Examples:
|
||||
countAttrs (name: value: value) { d = true; f = true; a = false; }
|
||||
=> 2
|
||||
|
||||
countAttrs (name: value: value.enable) { d = { enable = true; }; f = { enable = false; package = [ ]; }; }
|
||||
=> 1
|
||||
*/
|
||||
countAttrs = pred: attrs:
|
||||
lib.count (attr: pred attr.name attr.value)
|
||||
(lib.mapAttrsToList lib.nameValuePair attrs);
|
||||
countAttrs (name: value: value.enable) { d = { enable = true; }; f = { enable = false; package = [ ]; }; }
|
||||
=> 1
|
||||
*/
|
||||
countAttrs = pred: attrs:
|
||||
lib.count (attr: pred attr.name attr.value)
|
||||
(lib.mapAttrsToList lib.nameValuePair attrs);
|
||||
|
||||
getConfig = type: config: ../configs/${type}/${config};
|
||||
/* Returns the file path of the given config of the given environment.
|
||||
|
||||
getUser = type: user: ../configs/${type}/_users/${user};
|
||||
}
|
||||
Type: getConfig :: String -> String -> Path
|
||||
|
||||
Example:
|
||||
getConfig "home-manager" "foo-dogsquared"
|
||||
=> ../configs/home-manager/foo-dogsquared
|
||||
*/
|
||||
getConfig = type: config: ../configs/${type}/${config};
|
||||
|
||||
|
||||
/* Returns the file path of the given user subpart of the given
|
||||
environment. Only certain environments such as NixOS have this type of
|
||||
setup.
|
||||
|
||||
Type: getConfig :: String -> String -> Path
|
||||
|
||||
Example:
|
||||
getUser "nixos" "foo-dogsquared"
|
||||
=> ../configs/nixos/_users/foo-dogsquared
|
||||
*/
|
||||
getUser = type: user: ../configs/${type}/_users/${user};
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user