From 4f7ab8863463c7973df02310486bf153c7296af0 Mon Sep 17 00:00:00 2001 From: Hektor Misplon Date: Thu, 15 Jan 2026 13:15:06 +0100 Subject: [PATCH] fix(anki): make sops optional for standalone home-manager --- home/modules/anki.nix | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/home/modules/anki.nix b/home/modules/anki.nix index ef79e85..8b5e153 100644 --- a/home/modules/anki.nix +++ b/home/modules/anki.nix @@ -1,6 +1,23 @@ -{ config, pkgs, ... }: - { + config, + lib, + pkgs, + osConfig ? null, + ... +}: + +let + hmSopsAvailable = config ? sops && config.sops ? secrets; + osSopsAvailable = osConfig != null && osConfig ? sops && osConfig.sops ? secrets; + sopsAvailable = hmSopsAvailable || osSopsAvailable; + + sopsSecrets = if hmSopsAvailable then config.sops.secrets else osConfig.sops.secrets; +in +{ + warnings = lib.optional ( + !sopsAvailable && config.programs.anki.enable + ) "anki is enabled but sops secrets are not available. anki sync will not be configured."; + programs.anki = { enable = true; addons = with pkgs.ankiAddons; [ @@ -8,9 +25,9 @@ puppy-reinforcement review-heatmap ]; - sync = { - usernameFile = "${config.sops.secrets."anki_sync_user".path}"; - keyFile = "${config.sops.secrets."anki_sync_key".path}"; + sync = lib.mkIf sopsAvailable { + usernameFile = "${sopsSecrets."anki_sync_user".path}"; + keyFile = "${sopsSecrets."anki_sync_key".path}"; }; }; }