NixFiles/utils/default.nix

29 lines
825 B
Nix
Raw Permalink Normal View History

2023-12-19 19:08:55 +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