fix(anki): make sops optional for standalone home-manager
This commit is contained in:
@@ -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}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user