33 lines
623 B
Nix
33 lines
623 B
Nix
{
|
|
lib,
|
|
config,
|
|
self,
|
|
...
|
|
}:
|
|
{
|
|
options.my.overlays = {
|
|
enableAll = lib.mkEnableOption "all nixpkgs overlays";
|
|
}
|
|
// lib.mapAttrs (_: _: {
|
|
enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
};
|
|
}) self.overlays;
|
|
|
|
config = lib.mkMerge (
|
|
[
|
|
{
|
|
my.overlays = lib.mapAttrs (_: _: {
|
|
enable = lib.mkDefault config.my.overlays.enableAll;
|
|
}) self.overlays;
|
|
}
|
|
]
|
|
++ lib.mapAttrsToList (
|
|
name: overlay:
|
|
lib.mkIf config.my.overlays.${name}.enable {
|
|
nixpkgs.overlays = [ overlay ];
|
|
}
|
|
) self.overlays
|
|
);
|
|
}
|