chore(home-manager/gpg-agent): template agent configuration from upstream dotfiles
This commit is contained in:
parent
bd46837713
commit
cfb95bbedc
@ -1,10 +1,14 @@
|
||||
{ lib, ... }: {
|
||||
{ lib, ... }:
|
||||
|
||||
let
|
||||
repo = (builtins.fetchGit {
|
||||
url = "https://git.finally.coffee/transcaffeine/dotfiles.git";
|
||||
ref = "main";
|
||||
shallow = true;
|
||||
});
|
||||
utils = import ../../../utils { inherit lib; };
|
||||
in {
|
||||
programs.gpg = let
|
||||
repo = (builtins.fetchGit {
|
||||
url = "https://git.finally.coffee/transcaffeine/dotfiles.git";
|
||||
ref = "main";
|
||||
shallow = true;
|
||||
});
|
||||
gpgconf = builtins.listToAttrs (
|
||||
map (entry: {
|
||||
name = toString (lib.sublist 0 1 (lib.splitString " " entry));
|
||||
@ -21,4 +25,32 @@
|
||||
enable = true;
|
||||
settings = gpgconf;
|
||||
};
|
||||
services.gpg-agent = let
|
||||
gpg_agent_config = builtins.listToAttrs (
|
||||
map (entry: let
|
||||
val = toString (lib.sublist 1 100 (lib.splitString " " entry));
|
||||
emptyStringToTrue = (x: if lib.isBool x then x else if x == "" then true else x);
|
||||
in {
|
||||
name = toString (lib.sublist 0 1 (lib.splitString " " entry));
|
||||
value = emptyStringToTrue val;
|
||||
}) (
|
||||
builtins.filter (v: v != "") (
|
||||
lib.splitString "\n" (
|
||||
lib.readFile (repo.outPath + "/config/gnupg/gpg-agent.conf")
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
in {
|
||||
enable = true;
|
||||
enableSshSupport = gpg_agent_config."enable-ssh-support";
|
||||
defaultCacheTtl = gpg_agent_config."default-cache-ttl";
|
||||
maxCacheTtl = gpg_agent_config."max-cache-ttl";
|
||||
defaultCacheTtlSsh = gpg_agent_config."default-cache-ttl-ssh";
|
||||
maxCacheTtlSsh = gpg_agent_config."max-cache-ttl-ssh";
|
||||
extraConfig = utils.attrsToConfig {
|
||||
"ignore-cache-for-signing" = gpg_agent_config."ignore-cache-for-signing";
|
||||
"no-allow-external-cache" = gpg_agent_config."no-allow-external-cache";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user