blob: e60465b029aed7f4d07029e4c638998e2669cb60 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
{
config,
lib,
pkgs,
...
}@extraArgs:
let
primaryEmail =
let
primaryEmailList = builtins.filter (account: account.primary) (
lib.attrValues config.accounts.email.accounts
);
in
if primaryEmailList == [ ] then
{
userName = lib.mkDefault "Quentin Aristote";
address = lib.mkDefault "quentin@aristote.fr";
}
else
builtins.head primaryEmailList;
in
{
programs.git = {
userName = primaryEmail.userName;
userEmail = primaryEmail.address;
signing = lib.mkIf (primaryEmail ? "gpg") {
inherit (primaryEmail.gpg) key signByDefault;
};
ignores = [
(builtins.readFile (
pkgs.personal.static.gitignore.override {
templates = [
"Emacs"
"Linux"
];
}
))
]
++ [
# Personal rules
''
# direnv
.direnv
.envrc
# devenv
.devenv.flake.nix
.devenv/
devenv.local.nix
# Nix
shell.nix
.nix-gc-roots
.tmp
result
''
];
extraConfig = {
safe.directory = lib.mkIf (extraArgs ? osConfig) (
let
flake = extraArgs.osConfig.system.autoUpgrade.flake;
flakeIsValid = flake != null && lib.hasPrefix "git+file://" flake;
flakePath = lib.removePrefix "git+file://" flake;
in
lib.optional flakeIsValid flakePath
);
init.defaultBranch = "master";
pull.rebase = true;
};
};
programs.ssh.matchBlocks."git.aristote.fr" = {
hostname = "hephaistos.aristote.mesh";
user = "git";
proxyJump = "sshjump@hermes.aristote.fr";
};
}
|