depot/third_party/nixpkgs/lib/tests/modules/freeform-submodules.nix

24 lines
531 B
Nix

{ lib, options, ... }:
with lib.types;
{
options.fooDeclarations = lib.mkOption {
default = (options.free.type.getSubOptions [ ])._freeformOptions.foo.declarations;
};
options.free = lib.mkOption {
type = submodule {
config._module.freeformType = lib.mkMerge [
(attrsOf (submodule {
options.foo = lib.mkOption { };
}))
(attrsOf (submodule {
options.bar = lib.mkOption { };
}))
];
};
};
config.free.xxx.foo = 10;
config.free.yyy.bar = 10;
}