48 lines
720 B
Nix
48 lines
720 B
Nix
|
{ lib, ... }:
|
||
|
let
|
||
|
inherit (lib) mkOption types;
|
||
|
|
||
|
moduleWithoutKey = {
|
||
|
config = {
|
||
|
raw = "pear";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
moduleWithKey = {
|
||
|
key = __curPos.file + "#moduleWithKey";
|
||
|
config = {
|
||
|
raw = "pear";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
decl = {
|
||
|
options = {
|
||
|
raw = mkOption { type = types.lines; };
|
||
|
};
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
options = {
|
||
|
once = mkOption {
|
||
|
type = types.submodule {
|
||
|
imports = [
|
||
|
decl
|
||
|
moduleWithKey
|
||
|
moduleWithKey
|
||
|
];
|
||
|
};
|
||
|
default = { };
|
||
|
};
|
||
|
twice = mkOption {
|
||
|
type = types.submodule {
|
||
|
imports = [
|
||
|
decl
|
||
|
moduleWithoutKey
|
||
|
moduleWithoutKey
|
||
|
];
|
||
|
};
|
||
|
default = { };
|
||
|
};
|
||
|
};
|
||
|
}
|