2022-07-15 13:11:54 +02:00
|
|
|
{ config
|
|
|
|
, lib
|
2023-05-27 12:01:36 +02:00
|
|
|
, pkgs
|
2022-07-15 13:11:54 +02:00
|
|
|
, ...
|
|
|
|
}:
|
|
|
|
|
|
|
|
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";
|
2023-02-20 21:44:31 +01:00
|
|
|
gap = "git add --patch";
|
|
|
|
gr = "git restore";
|
|
|
|
grp = "git restore --patch";
|
2022-07-15 13:11:54 +02:00
|
|
|
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";
|
2023-01-20 10:23:30 +01:00
|
|
|
merge.conflictstyle = "zdiff3";
|
2023-05-27 12:01:36 +02:00
|
|
|
diff.external = getExe pkgs.difftastic;
|
2023-08-29 08:52:27 +02:00
|
|
|
push.autoSetupRemote = true;
|
2022-08-20 14:20:30 +02:00
|
|
|
};
|
2022-07-15 13:11:54 +02:00
|
|
|
signing = mkIf cfg.signing {
|
|
|
|
key = "0x970C6E89EB0547A9";
|
|
|
|
signByDefault = true;
|
|
|
|
};
|
|
|
|
lfs.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
programs.git = {
|
|
|
|
enable = true;
|
|
|
|
config.safe.directory = "/home/moritz/.dotfiles";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|