config/utils/default.nix

29 lines
825 B
Nix
Raw Normal View History

2023-03-09 08:33:38 +00:00
pkgs_or_lib:
let
is_pkgs = pkgs_or_lib ? lib;
lib = if is_pkgs then pkgs_or_lib.lib else pkgs_or_lib;
utils = lib.pipe ./. [
(import ./nixFilesInWithName.nix lib)
(builtins.map (file: rec {
name = lib.removeSuffix ".nix" file.name;
func = import file.path;
accepts_pkgs = builtins.hasAttr "pkgs" (builtins.functionArgs func);
value =
if accepts_pkgs then
func
(builtins.intersectAttrs (builtins.functionArgs func) {
inherit
lib utils; pkgs = pkgs_or_lib;
})
else if is_pkgs
then func lib
else
func pkgs_or_lib;
include = file.name != "default.nix" && (!accepts_pkgs || is_pkgs);
}))
(builtins.filter (utility: utility.include))
builtins.listToAttrs
];
in
utils