37 lines
808 B
Nix
37 lines
808 B
Nix
{
|
|
inputs,
|
|
lib,
|
|
config,
|
|
...
|
|
}: {
|
|
options.fleet.overlays = let
|
|
overlayType = lib.mkOptionType {
|
|
name = "nixpkgs-overlay";
|
|
description = "nixpkgs overlay";
|
|
check = lib.isFunction;
|
|
merge = lib.mergeOneOption;
|
|
};
|
|
in
|
|
lib.mkOption {
|
|
description = "Nixpkgs overlays to apply at flake level (not in hosts)";
|
|
type = lib.types.listOf overlayType;
|
|
default = with inputs; [
|
|
agenix.overlays.default
|
|
comma.overlays.default
|
|
nur.overlay
|
|
nil.overlays.default
|
|
];
|
|
};
|
|
|
|
config.perSystem = {
|
|
system,
|
|
lib,
|
|
...
|
|
}: {
|
|
_module.args.pkgs =
|
|
lib.foldl
|
|
(legacyPackages: overlay: legacyPackages.extend overlay)
|
|
inputs.nixpkgsUnstable.legacyPackages.${system}
|
|
config.fleet.overlays;
|
|
};
|
|
}
|