blob: 8d1da2f68ff75e5826ec9fea253a266ae9f88078 (
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
|
# This module defines the contents of `~/.config/git/ignore`. It fetches the
# templates for different gitignores and compiles them into one.
{
pkgs,
lib,
...
}: let
gitignore = ignores:
pkgs.stdenv.mkDerivation {
name = (lib.concatStringsSep "+" ignores) + ".gitignore";
src = pkgs.fetchFromGitHub {
owner = "toptal";
repo = "gitignore";
rev = "7e72ecd8af69b39c25aedc645117f0dc261cedfd";
hash = "sha256-Ln3w6wx+pX4UFLY2gGJGax2/nxgp/Svrn0uctSIRdEc=";
};
inherit ignores;
buildPhase = ''
for i in $ignores; do
cat ./templates/$i.gitignore >>$out
done
'';
};
targets =
[
"Node"
"Deno"
"C"
]
++ (lib.optional pkgs.stdenv.isDarwin "MacOS")
++ (lib.optional pkgs.stdenv.isLinux "Linux");
in {
xdg.configFile."git/ignore".source = gitignore targets;
}
|