dotfiles/modules/programs/git.nix

67 lines
1.3 KiB
Nix
Raw Normal View History

2022-07-15 13:11:54 +02:00
{ config
, lib
, pkgs
, ...
}:
with lib;
let
cfg = config.my.programs.git;
in
{
options.my.programs.git = {
2022-10-15 20:00:09 +02:00
enable = mkEnableOption "git";
2022-07-15 13:11:54 +02:00
signing = mkOption {
default = false;
type = types.bool;
example = true;
};
2022-08-31 11:43:30 +02:00
identity = {
name = mkOption {
default = "Moritz Böhme";
type = types.str;
};
email = mkOption {
default = "mail@moritzboeh.me";
type = types.str;
};
};
2022-07-15 13:11:54 +02:00
};
config = mkIf cfg.enable {
my.shell.abbreviations = {
ga = "git add";
gb = "git branch";
gc = "git commit";
gco = "git checkout";
gd = "git diff";
gds = "git diff --staged";
gp = "git push";
gf = "git fetch";
gF = "git pull";
gs = "git status";
};
home-manager.users.moritz = {
programs.git = {
enable = true;
2022-08-31 11:43:30 +02:00
userName = cfg.identity.name;
userEmail = cfg.identity.email;
2022-08-20 14:20:30 +02:00
extraConfig = {
init.defaultBranch = "main";
merge.conflictstyle = "diff3";
};
2022-07-15 13:11:54 +02:00
delta.enable = true;
signing = mkIf cfg.signing {
key = "0x970C6E89EB0547A9";
signByDefault = true;
};
lfs.enable = true;
};
};
programs.git = {
enable = true;
config.safe.directory = "/home/moritz/.dotfiles";
};
};
}