From f089f7fecca6735cd87b04b5f4e4d070ba1e9c83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 3 Jan 2023 02:05:36 +0100 Subject: [PATCH] Add lib.mkOpinionatedOption and use it --- lib/modules.nix | 7 ++++++- modules/grafana.nix | 6 ++---- modules/zfs.nix | 13 ++++++++++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/modules.nix b/lib/modules.nix index 869d6c0..9988df3 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -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}."; + }; } diff --git a/modules/grafana.nix b/modules/grafana.nix index ced350a..eace647 100644 --- a/modules/grafana.nix +++ b/modules/grafana.nix @@ -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 { diff --git a/modules/zfs.nix b/modules/zfs.nix index 8b3fdc2..a048702 100644 --- a/modules/zfs.nix +++ b/modules/zfs.nix @@ -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; };