82 lines
1.8 KiB
Nix
82 lines
1.8 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
inherit (config.grimmShared) enable tooling;
|
|
inherit (lib)
|
|
mkOption
|
|
types
|
|
getExe
|
|
mkIf
|
|
;
|
|
in
|
|
{
|
|
config = mkIf (enable && tooling.enable) {
|
|
environment.systemPackages = [
|
|
(pkgs.writeShellScriptBin "silent-add" "${getExe config.programs.git.package} add --intent-to-add $@ ; ${getExe config.programs.git.package} update-index --assume-unchanged $@")
|
|
|
|
pkgs.urlencode
|
|
pkgs.tea
|
|
pkgs.delta
|
|
];
|
|
|
|
programs.git = {
|
|
enable = true;
|
|
lfs.enable = true;
|
|
config = {
|
|
|
|
init.defaultBranch = "main";
|
|
credential.username = tooling.git_user;
|
|
user.name = tooling.git_user;
|
|
user.email = tooling.git_email;
|
|
push.autoSetupRemote = true;
|
|
core.autocrlf = "input";
|
|
commit.gpgsign = true;
|
|
core.excludesfile = (
|
|
pkgs.writeText ".gitignore" ''
|
|
.idea
|
|
.obsidian
|
|
*~
|
|
result
|
|
''
|
|
);
|
|
pull.rebase = false;
|
|
include.path = "${pkgs.delta.src}/themes.gitconfig";
|
|
|
|
core.pager = "delta";
|
|
interactive.diffFilter = "delta --color-only";
|
|
delta = {
|
|
navigate = true;
|
|
features = "mantis-shrimp";
|
|
};
|
|
|
|
merge.conflictstyle = "diff3";
|
|
diff.colorMoved = "default";
|
|
|
|
alias = {
|
|
pfusch = "push --force-with-lease --force-if-includes";
|
|
fuck = "reset HEAD~1";
|
|
fixup = "commit --fixup";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
options.grimmShared.tooling = {
|
|
git_user = mkOption {
|
|
type = types.str;
|
|
default = "Grimmauld";
|
|
description = "Username for git to use";
|
|
};
|
|
|
|
git_email = mkOption {
|
|
type = types.str;
|
|
default = "${config.grimmShared.tooling.git_user}@grimmauld.de";
|
|
description = "Email for git to use";
|
|
};
|
|
};
|
|
}
|