Files
nix/users/configs/git/default.nix
2024-06-21 23:39:18 +03:00

31 lines
894 B
Nix

{ user ? throw "user argument is required" }: { config, pkgs, ... }:
let
hmConfig = config.home-manager.users."${user.name}";
in {
home-manager.users."${user.name}" = {
programs.git = {
enable = true;
lfs.enable = true;
userName = user.fullName;
userEmail = user.email;
signing = {
signByDefault = true;
key = null;
};
extraConfig.credential.helper = "store";
hooks = let
commit-msg-hook = pkgs.writeShellScriptBin "git-commit-msg" ''
${pkgs.git}/bin/git interpret-trailers --if-exists doNothing --trailer \
"Signed-off-by: $(git config user.name) <$(git config user.email)>" \
--in-place "$1"
'';
in {
commit-msg = "${commit-msg-hook}/bin/git-commit-msg";
};
};
sops.secrets."git".path = "${hmConfig.xdg.configHome}/git/credentials";
};
}