git: allow contents in git.includes

This commit is contained in:
Mario Rodas 2019-01-29 06:33:10 -05:00 committed by Robert Helgesson
parent e0e8d5061d
commit 6da88339f5
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
3 changed files with 41 additions and 5 deletions

View file

@ -29,3 +29,6 @@ path = ~/path/to/config.inc
[includeIf "gitdir:~/src/dir"]
path = ~/path/to/conditional.inc
[includeIf "gitdir:~/src/dir"]
path = @git_include_path@

View file

@ -1,7 +1,24 @@
{ config, lib, ... }:
{ config, lib, pkgs, ... }:
with lib;
let
gitInclude = {
user = {
name = "John Doe";
email = "user@example.org";
};
};
substituteExpected = path: pkgs.substituteAll {
src = path;
git_include_path = pkgs.writeText "contents" (generators.toINI {} gitInclude);
};
in
{
config = {
programs.git = mkMerge [
@ -23,6 +40,10 @@ with lib;
path = "~/path/to/conditional.inc";
condition = "gitdir:~/src/dir";
}
{
condition = "gitdir:~/src/dir";
contents = gitInclude;
}
];
signing = {
gpgPath = "path-to-gpg";
@ -43,7 +64,7 @@ with lib;
nmt.script = ''
assertFileExists home-files/.config/git/config
assertFileContent home-files/.config/git/config ${./git-expected.conf}
assertFileContent home-files/.config/git/config ${substituteExpected ./git-expected.conf}
'';
};
}