dynix/modules/dynamicism/submodule.nix

48 lines
1 KiB
Nix
Raw Normal View History

{
name,
lib,
config,
...
}:
let
inherit (lib.modules)
mkIf
;
inherit (lib.options)
mkOption
mkEnableOption
literalExpression
;
t = lib.types;
/** Either a list of strings, or a dotted string that will be split. */
convenientAttrPath = t.coercedTo t.str (lib.splitString ".") (t.listOf t.str);
in
{
options = {
2026-02-03 18:37:16 +01:00
enable = mkEnableOption "dynamicism for '${name}'";
source-options = mkOption {
type = t.listOf convenientAttrPath;
description = "A list of attrpaths of the NixOS option the dynamicism for '${name}' uses";
example = literalExpression ''
[ [ "services" "gotosocial" "settings" ] "services.nginx.settings" ]
'';
};
systemd-services-updated = mkOption {
type = t.listOf t.str;
description = ''
A list of systemd unit names (including the suffix, e.g. `.service`) that need to be updated.
'';
example = literalExpression ''
"gotosocial.service"
'';
};
};
config = mkIf config.enable {
};
}