aboutsummaryrefslogtreecommitdiffstats
path: root/modules/security
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@gmail.com>2026-09-20 04:15:53 +0530
committerArpit Chakladar <arpitchakladar@gmail.com>2026-09-20 04:15:53 +0530
commitdaea646972aa03ce8e58bff2edaed16bf7fbf9db (patch)
tree0f0ee033422e456b14b3e012ca8b1a490b77de15 /modules/security
parentfb442560064f98ee850c71d78330b9b3abda4774 (diff)
downloadhome-manager-config-daea646972aa03ce8e58bff2edaed16bf7fbf9db.tar.gz
home-manager-config-daea646972aa03ce8e58bff2edaed16bf7fbf9db.zip
chore: added better assertions for options for submodules
Now setting options for submodules requires the submodule to be enabled first.
Diffstat (limited to 'modules/security')
-rw-r--r--modules/security/gopass/assertions.nix14
-rw-r--r--modules/security/gopass/default.nix2
-rw-r--r--modules/security/gpg/assertions.nix10
-rw-r--r--modules/security/gpg/default.nix2
4 files changed, 28 insertions, 0 deletions
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 {
diff --git a/modules/security/gpg/assertions.nix b/modules/security/gpg/assertions.nix
new file mode 100644
index 0000000..1108e47
--- /dev/null
+++ b/modules/security/gpg/assertions.nix
@@ -0,0 +1,10 @@
+# Validates GPG sub-options require the main module to be enabled
+{ config, ... }:
+{
+ assertions = [
+ {
+ assertion = !config.security.gpg.backup.enable || config.security.gpg.enable;
+ message = "security.gpg.backup.enable requires security.gpg.enable.";
+ }
+ ];
+}
diff --git a/modules/security/gpg/default.nix b/modules/security/gpg/default.nix
index 6956711..3047f59 100644
--- a/modules/security/gpg/default.nix
+++ b/modules/security/gpg/default.nix
@@ -38,6 +38,8 @@ let
};
in
{
+ imports = [ ./assertions.nix ];
+
options.security.gpg = {
enable = lib.mkEnableOption "Enables gpg.";