34 lines
839 B
Nix
34 lines
839 B
Nix
{
|
|
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; [
|
|
anki-connect
|
|
puppy-reinforcement
|
|
review-heatmap
|
|
];
|
|
sync = lib.mkIf sopsAvailable {
|
|
usernameFile = "${sopsSecrets."anki_sync_user".path}";
|
|
keyFile = "${sopsSecrets."anki_sync_key".path}";
|
|
};
|
|
};
|
|
}
|