From a49b068c071d3def1c8172dfd87b1974d793764a Mon Sep 17 00:00:00 2001 From: Stefan Ellmauthaler Date: Tue, 17 May 2022 18:15:49 +0200 Subject: [PATCH] Add machine specific git stuff to home manager config --- modules/users.nix | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/modules/users.nix b/modules/users.nix index 6ef3a9c..d0f5f74 100644 --- a/modules/users.nix +++ b/modules/users.nix @@ -65,7 +65,7 @@ with lib; { config = let cfg = config.elss.users; - inherit (elss.withConfig config) mapAdmins mapUsers mapAllUsersAndRoot; + inherit (elss.withConfig config) mapAdmins mapUsers mapAllUsersAndRoot mapAllUsers; getMeta = login: builtins.getAttr login cfg.meta; @@ -87,6 +87,27 @@ with lib; { extraGroups = [ ]; openssh.authorizedKeys.keys = meta.publicKeys; }; + + mkGitUser = login: + let meta = getMeta login; + in + { + programs.git = { + userEmail = meta.mailAddress; + userName = meta.description; + extraConfig ={ + gpg = lib.mkIf meta.git.gpgsm { + format = "x509"; + program = "${pkgs.gnupg}/bin/gpgsm"; + }; + user = { + signingKey = meta.git.key; + signByDefault = meta.git.signDefault; + }; + }; + }; + }; + in mkIf (cfg.enable) { @@ -118,5 +139,6 @@ with lib; { (mapUsers mkUser) ]; }; + home-manager.users = (mapAllUsers mkGitUser); }; }