main
1{den, ...}: {
2 den.aspects.dev.includes = [den.aspects.dev.git];
3 den.aspects.dev.git = {
4 nixos = {pkgs, ...}: {
5 environment.systemPackages = [pkgs.git];
6 };
7
8 provides.to-users = {
9 hjem = {
10 user,
11 pkgs,
12 lib,
13 ...
14 }: {
15 packages = [
16 pkgs.git
17 pkgs.git-lfs
18
19 pkgs.difftastic
20 ];
21
22 files.".gitconfig".type = "delete";
23
24 xdg.config.files."git/config" = {
25 generator = lib.generators.toGitINI;
26 value = {
27 user = {
28 name = user.identity.displayName;
29 email = user.identity.email;
30 };
31
32 init.defaultBranch = "main";
33 trim.bases = "develop,master,main"; # for git-trim
34 push.autoSetupRemote = true;
35 pull.rebase = true;
36
37 filter.lfs = let
38 lfsPath = lib.getExe pkgs.git-lfs;
39 in {
40 required = true;
41 clean = "${lfsPath} clean -- %f";
42 process = "${lfsPath} filter-process";
43 smudge = "${lfsPath} smudge -- %f";
44 };
45
46 diff.external = "${lib.getExe pkgs.difftastic}";
47 };
48 };
49 };
50 };
51 };
52}