forked from Fediversity/Fediversity
revert submodule
wrapper to align with module functions already doing types #2
1 changed files with 28 additions and 19 deletions
|
@ -4,12 +4,19 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) attrNames mkOption genAttrs;
|
||||
inherit (lib)
|
||||
attrNames
|
||||
mapAttrs
|
||||
mkOption
|
||||
genAttrs
|
||||
;
|
||||
inherit (lib.types)
|
||||
attrsOf
|
||||
attrTag
|
||||
deferredModule
|
||||
mergeTypes
|
||||
submoduleWith
|
||||
submodule
|
||||
;
|
||||
runtime-configuration = mkOption {
|
||||
description = "The NixOS module of a run-time environment";
|
||||
|
@ -21,26 +28,28 @@ let
|
|||
runtime-environment = attrTag (
|
||||
mapAttrs
|
||||
(
|
||||
name: options:
|
||||
mkOption {
|
||||
type = submoduleWith {
|
||||
modules = [
|
||||
{
|
||||
options = options // {
|
||||
module = mkOption {
|
||||
description = "The NixOS module of the run-time environment";
|
||||
type = deferredModule;
|
||||
default = config.runtime-configurations.${name};
|
||||
readOnly = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
name:
|
||||
option@{ type, ... }:
|
||||
mkOption (
|
||||
option
|
||||
// {
|
||||
type = mergeTypes type (submodule {
|
||||
options.module = mkOption {
|
||||
description = "The NixOS module of the run-time environment";
|
||||
type = deferredModule;
|
||||
default = config.runtime-configurations.${name};
|
||||
readOnly = true;
|
||||
};
|
||||
});
|
||||
}
|
||||
)
|
||||
)
|
||||
{
|
||||
nixos = { };
|
||||
nixos = {
|
||||
description = "A NixOS instance to deploy to.";
|
||||
type = submodule {
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
application = submoduleWith {
|
||||
|
|
Loading…
Add table
Reference in a new issue