Skip to content

Commit

Permalink
gpg-agent: remove unnecessary IFD
Browse files Browse the repository at this point in the history
Make `gpgconf` only perform an import from derivation when the GPG
`homedir` is set to a non-default value, which probably isn't the case
for most users.
  • Loading branch information
ncfavier authored and rycee committed Sep 15, 2021
1 parent 562449b commit 371576c
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions modules/services/gpg-agent.nix
Expand Up @@ -20,22 +20,19 @@ let
# we cannot use `gpgconf` directly because it heavily depends on system
# state, but we need the values at build time. original:
# https://github.com/gpg/gnupg/blob/c6702d77d936b3e9d91b34d8fdee9599ab94ee1b/common/homedir.c#L672-L681
gpgconf = dir: let
f = pkgs.runCommand dir {} ''
PATH=${pkgs.coreutils}/bin:${pkgs.xxd}/bin:$PATH
if [[ ${homedir} = ${options.programs.gpg.homedir.default} ]]
then
echo -n "%t/gnupg/${dir}" > $out
else
gpgconf = dir:
if homedir == options.programs.gpg.homedir.default then
"%t/gnupg/${dir}"
else
builtins.readFile (pkgs.runCommand dir {} ''
PATH=${pkgs.xxd}/bin:$PATH
hash=$(echo -n ${homedir} | sha1sum -b | xxd -r -p | base32 | \
cut -c -24 | tr '[:upper:]' '[:lower:]' | \
tr abcdefghijklmnopqrstuvwxyz234567 \
ybndrfg8ejkmcpqxot1uwisza345h769)
echo -n "%t/gnupg/d.$hash/${dir}" > $out
fi
'';
in "${builtins.readFile f}";
echo -n "%t/gnupg/d.$hash/${dir}" > "$out"
'');

in

Expand Down

0 comments on commit 371576c

Please sign in to comment.