The workaround is no longer needed since Nixpkgs 22.05 (https://github.com/NixOS/nixpkgs/pull/156533). Declaring options directly in a submodule now works, e.g. `options.flake.foo`. The function is kept for backwards compatibility but documented as deprecated. The minimum supported Nixpkgs lib version is already 22.05, so this change does not drop support for any previously supported version.
32 lines
1.1 KiB
Nix
32 lines
1.1 KiB
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib)
|
|
mkOption
|
|
types
|
|
;
|
|
in
|
|
{
|
|
options = {
|
|
flake.overlays = mkOption {
|
|
# uniq -> ordered: https://github.com/NixOS/nixpkgs/issues/147052
|
|
# also update description when done
|
|
type = types.lazyAttrsOf (types.uniq (types.functionTo (types.functionTo (types.lazyAttrsOf types.unspecified))));
|
|
# This eta expansion exists for the sole purpose of making nix flake check happy.
|
|
apply = lib.mapAttrs (_k: f: final: prev: f final prev);
|
|
default = { };
|
|
example = lib.literalExpression or lib.literalExample ''
|
|
{
|
|
default = final: prev: {};
|
|
}
|
|
'';
|
|
description = ''
|
|
An attribute set of [overlays](https://nixos.org/manual/nixpkgs/stable/#chap-overlays).
|
|
|
|
Note that the overlays themselves are not mergeable. While overlays
|
|
can be composed, the order of composition is significant, but the
|
|
module system does not guarantee sufficiently deterministic
|
|
definition ordering, across versions and when changing `imports`.
|
|
'';
|
|
};
|
|
};
|
|
}
|