From 371576cdc2580ba93a38e28da8ece2129f558815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Sun, 22 Aug 2021 11:49:47 +0200 Subject: [PATCH] gpg-agent: remove unnecessary IFD 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. --- modules/services/gpg-agent.nix | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/modules/services/gpg-agent.nix b/modules/services/gpg-agent.nix index 644690a8..785f1114 100644 --- a/modules/services/gpg-agent.nix +++ b/modules/services/gpg-agent.nix @@ -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 + gpgconf = dir: + if homedir == options.programs.gpg.homedir.default then + "%t/gnupg/${dir}" + else + builtins.readFile (pkgs.runCommand dir {} '' + PATH=${pkgs.xxd}/bin:$PATH - if [[ ${homedir} = ${options.programs.gpg.homedir.default} ]] - then - echo -n "%t/gnupg/${dir}" > $out - else 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