{ pkgs, config, lib, ... }: with lib; let cfg = config.modules.software.dev.git; in { options.modules.software.dev.git = { enable = mkEnableOption "Enable git. You know what git is"; }; config = mkIf cfg.enable { hm.programs.git = { enable = true; package = pkgs.gitFull; userName = ''Reid "reidlab"''; userEmail = "reidlab325@gmail.com"; ignores = [ # General "*.direnv" "*.envrc" # OS related ".DS_Store?" ".DS_Store" ".CFUserTextEncoding" ".Trash" ".Xauthority" "thumbs.db" "Thumbs.db" "Icon?" ]; aliases = { ranked-authors = "!git authors | sort | uniq -c | sort -n"; emails = '' !git log --format="%aE" | sort -u ''; email-domains = '' !git log --format="%aE" | awk -F'@' '{print $2}' | sort -u ''; graph = '' log --graph --color --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n" ''; }; extraConfig = { push.autoSetupRemote = true; pull.rebase = true; init.defaultBranch = "main"; }; }; }; }