Compare commits
2 Commits
e5aef16a97
...
cfb95bbedc
Author | SHA1 | Date | |
---|---|---|---|
cfb95bbedc | |||
bd46837713 |
@ -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
|
programs.gpg = let
|
||||||
repo = (builtins.fetchGit {
|
|
||||||
url = "https://git.finally.coffee/transcaffeine/dotfiles.git";
|
|
||||||
ref = "main";
|
|
||||||
shallow = true;
|
|
||||||
});
|
|
||||||
gpgconf = builtins.listToAttrs (
|
gpgconf = builtins.listToAttrs (
|
||||||
map (entry: {
|
map (entry: {
|
||||||
name = toString (lib.sublist 0 1 (lib.splitString " " entry));
|
name = toString (lib.sublist 0 1 (lib.splitString " " entry));
|
||||||
@ -21,4 +25,32 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = gpgconf;
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
14
utils/default.nix
Normal file
14
utils/default.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ lib, ...}:
|
||||||
|
|
||||||
|
rec {
|
||||||
|
_tupleToEntry = x: x.name + (if lib.isBool x.value then "" else (" " + x.value));
|
||||||
|
attrsToConfig = attrs: (
|
||||||
|
lib.concatStringsSep "\n" (
|
||||||
|
map (_tupleToEntry) (
|
||||||
|
builtins.filter (e: e.value != false) (
|
||||||
|
lib.attrsToList attrs
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user