25 lines
531 B
Nix
25 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;
|
||
|
}
|