mkStandardFeatureFlakeModule

This commit is contained in:
greyweather committed 2026-09-02 01:58:38 +01:00
1 parent fef3a464ef
commit 92a37a127d
1 file changed
+16
+16
View File
@@ -51,6 +51,22 @@
flake.homeModules.${moduleName} = func;
};
mkStandardFeatureFlakeModule = moduleName: { optionName, optionDefinition, systemConfig, homeConfig }: {
imports = [ (mkMirroredModulesFlakeModule "${moduleName}Options" ({ lib, ... }: {
options.${optionName} = optionDefinition;
})) ];
flake.nixosModules.${moduleName} = { lib, config, ... }: {
config = lib.mkIf (config.${optionName}) (mkIfElse (config.features.nixos.home-manager.enable) {
home-manager.users.${config.info.userName}.${optionName} = lib.mkDefault true;
} systemConfig);
};
flake.homeModules.${moduleName} = { lib, config, ... }: {
config = lib.mkIf (config.${optionName}) homeConfig;
};
};
mkRedundantOptionDescription = name: value: "The functionality of this option completely depends on `${name}` being `${value}`, and will not be evaluated otherwise.";
mkRedundantOption = name: value: attrs: lib.mkOption {