1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-12-18 15:59:48 +01:00
home-manager/tests/modules/programs/git.nix
Robert Helgesson 797c77a00a
tests: reduce number of downloads
This replaces some derivation outputs by simple strings rather than
full Nix store paths. This removes the need to download the whole
derivation when all we need is a static string.
2019-10-26 13:07:04 +02:00

75 lines
1.7 KiB
Nix

{ 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 [
{
enable = true;
package = pkgs.gitMinimal;
aliases = {
a1 = "foo";
a2 = "bar";
};
extraConfig = {
extra = {
name = "value";
multiple = [1];
};
};
ignores = [ "*~" "*.swp" ];
includes = [
{ path = "~/path/to/config.inc"; }
{
path = "~/path/to/conditional.inc";
condition = "gitdir:~/src/dir";
}
{
condition = "gitdir:~/src/dir";
contents = gitInclude;
}
];
signing = {
gpgPath = "path-to-gpg";
key = "00112233445566778899AABBCCDDEEFF";
signByDefault = true;
};
userEmail = "user@example.org";
userName = "John Doe";
lfs.enable = true;
}
{
aliases.a2 = mkForce "baz";
extraConfig."extra \"backcompat.with.dots\"".previously = "worked";
extraConfig.extra.boolean = true;
extraConfig.extra.integer = 38;
extraConfig.extra.multiple = [2];
extraConfig.extra.subsection.value = "test";
}
];
nmt.script = ''
assertFileExists home-files/.config/git/config
assertFileContent home-files/.config/git/config ${substituteExpected ./git-expected.conf}
'';
};
}