From daea646972aa03ce8e58bff2edaed16bf7fbf9db Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sun, 20 Sep 2026 04:15:53 +0530 Subject: chore: added better assertions for options for submodules Now setting options for submodules requires the submodule to be enabled first. --- modules/security/gopass/assertions.nix | 14 ++++++++++++++ modules/security/gopass/default.nix | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 modules/security/gopass/assertions.nix (limited to 'modules/security/gopass') diff --git a/modules/security/gopass/assertions.nix b/modules/security/gopass/assertions.nix new file mode 100644 index 0000000..bfecfad --- /dev/null +++ b/modules/security/gopass/assertions.nix @@ -0,0 +1,14 @@ +# Validates gopass sub-options require the main module to be enabled +{ config, ... }: +{ + assertions = [ + { + assertion = !config.security.gopass.sync.enable || config.security.gopass.enable; + message = "security.gopass.sync.enable requires security.gopass.enable."; + } + { + assertion = !config.security.gopass.creation-templates.enable || config.security.gopass.enable; + message = "security.gopass.creation-templates.enable requires security.gopass.enable."; + } + ]; +} diff --git a/modules/security/gopass/default.nix b/modules/security/gopass/default.nix index aa0a0d6..616baeb 100644 --- a/modules/security/gopass/default.nix +++ b/modules/security/gopass/default.nix @@ -6,6 +6,8 @@ ... }: { + imports = [ ./assertions.nix ]; + options.security.gopass = { enable = lib.mkEnableOption "Enables gopass."; package = lib.mkOption { -- cgit v1.2.3