infrastructure/nixos/common/hm-modules/git.nix
2023-11-16 20:14:11 +01:00

32 lines
790 B
Nix

{ config, pkgs, lib, ... }:
with lib;
let cfg = config.programs.v.git;
in {
options.programs.v.git = { enable = mkEnableOption "git"; };
config = mkIf cfg.enable {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
userName = "0x76";
userEmail = "v@0x76.dev";
lfs.enable = true;
extraConfig = {
push.autoSetupRemote = true;
init.defaultBranch = "main";
# Git merge driver that always grabs upstream changes
# Useful for e.g. lock files
merge.ours = {
name = "Overwrite Upstream Changes";
driver = "cp -f '%A' '%B'";
};
};
difftastic.enable = true;
};
home.file.".config/git/attributes".text = ''
flake.lock merge=ours
'';
};
}