mirror of
https://github.com/nix-community/home-manager
synced 2024-12-24 18:59:47 +01:00
git: add 'includes' option
This commit is contained in:
parent
d294aa4356
commit
6dc4f31ba1
2 changed files with 69 additions and 0 deletions
|
@ -612,6 +612,28 @@ in
|
|||
A new module is available: 'programs.autorandr'.
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
time = "2018-04-19T15:44:55+00:00";
|
||||
condition = config.programs.git.enable;
|
||||
message = ''
|
||||
A new option 'programs.git.includes' is available. Additional
|
||||
Git configuration files may be included via
|
||||
|
||||
programs.git.includes = [
|
||||
{ path = "~/path/to/config.inc"; }
|
||||
];
|
||||
|
||||
or conditionally via
|
||||
|
||||
programs.git.includes = [
|
||||
{ path = "~/path/to/config.inc"; condition = "gitdir:~/src/"; }
|
||||
];
|
||||
|
||||
and the corresponding '[include]' or '[includeIf]' sections will be
|
||||
appended to the main Git configuration file.
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -28,6 +28,28 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
includeModule = types.submodule {
|
||||
options = {
|
||||
condition = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Include this configuration only when <varname>condition</varname>
|
||||
matches. Allowed conditions are described in
|
||||
<citerefentry>
|
||||
<refentrytitle>git-config</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</citerefentry>.
|
||||
'';
|
||||
};
|
||||
|
||||
path = mkOption {
|
||||
type = types.str;
|
||||
description = "Path of the configuration file to include.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
@ -83,6 +105,21 @@ in
|
|||
example = [ "*~" "*.swp" ];
|
||||
description = "List of paths that should be globally ignored.";
|
||||
};
|
||||
|
||||
includes = mkOption {
|
||||
type = types.listOf includeModule;
|
||||
default = [];
|
||||
example = literalExample ''
|
||||
[
|
||||
{ path = "~/path/to/config.inc"; }
|
||||
{
|
||||
path = "~/path/to/conditional.inc";
|
||||
condition = "gitdir:~/src/dir";
|
||||
}
|
||||
]
|
||||
'';
|
||||
description = "List of configuration files to include.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -124,6 +161,16 @@ in
|
|||
(mkIf (lib.isString cfg.extraConfig) {
|
||||
xdg.configFile."git/config".text = cfg.extraConfig;
|
||||
})
|
||||
|
||||
(mkIf (cfg.includes != []) {
|
||||
xdg.configFile."git/config".text = mkAfter
|
||||
(concatMapStringsSep "\n"
|
||||
(i: with i; ''
|
||||
[${if (condition == null) then "include" else "includeIf \"${condition}\""}]
|
||||
path = ${path}
|
||||
'')
|
||||
cfg.includes);
|
||||
})
|
||||
]
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue