{ lib, config, ... }: let cfg = config.my.home.git; in { options.my.home.git = with lib.my; { enable = mkEnableOption "git configuration"; }; config.programs.git = lib.mkIf cfg.enable { enable = true; aliases = { s = "status --short --branch"; amend = "commit --amend --no-edit"; }; extraConfig = { core.whitespace = "trailing-space,space-before-tab"; color.ui = "true"; push.default = "simple"; init.defaultBranch = "main"; branch.autosetuprebase = "remote"; branch.sort = "authordate"; }; userName = "Franck Cuny"; userEmail = "franck@fcuny.net"; extraConfig = { "credential \"https://github.com\"" = { username = "fcuny"; }; "credential \"https://git.fcuny.net\"" = { username = "fcuny"; }; }; ignores = [ "*.elc" "*.iml" "*.o" "*.pyc" "*.pyo" "*pyc" "*~" ".DS_Store" ".\\#" ".dir-locals.el" ".direnv/*" ".idea" ".projectile" ".pytest_cache/" "/env/*" "Icon" "TAGS" "\\#*\\#" "tags" ]; }; }