Add lib.mkOpinionatedOption and use it

This commit is contained in:
Sandro - 2023-01-03 02:05:36 +01:00
parent 3d9678ed60
commit f089f7fecc
Signed by: sandro
GPG Key ID: 3AF5A43A3EECC2E5
3 changed files with 18 additions and 8 deletions

View File

@ -1,5 +1,10 @@
{ lib, ... }:
{ config, lib, ... }:
{
mkRecursiveDefault = lib.mapAttrsRecursive (path: value: lib.mkDefault value);
mkOpinionatedOption = text: lib.mkOption {
type = lib.types.bool;
default = config.opinionatedDefaults;
description = lib.mdDoc "Wether to ${text}.";
};
}

View File

@ -4,10 +4,8 @@ let
cfg = config.services.grafana;
in
{
options.services.grafana.opinionatedDefaults = lib.mkOption {
type = lib.types.bool;
default = config.opinionatedDefaults;
description = lib.mdDoc "Wether to enable set opinionated default settings.";
options = {
services.grafana.recommendedDefaults = libS.mkOpinionatedOption "set recommended, secure default settings";
};
config = lib.mkIf cfg.enable {

View File

@ -1,11 +1,18 @@
{ config, lib, ... }:
{ config, lib, libS, ... }:
let
cfg = config.boot.zfs;
in
{
config = lib.mkIf cfg.enabled {
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
options = {
boot.zfs.recommendedDefaults = libS.mkOpinionatedOption "enable recommended ZFS settings";
};
config = lib.mkIf (cfg.recommendedDefaults && cfg.enabled) {
boot = {
kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
zfs.forceImportRoot = false;
};
services.zfs.autoScrub.enable = true;
};