mirror of
https://github.com/nix-community/home-manager
synced 2024-12-20 16:59:47 +01:00
specialization: fix name
conflict inside NixOS module (#3718)
If used inside the NixOS/nix-darwin module, we get conflicting definitions of `name` inside the specialization: one is the user name coming from the NixOS module definition and the other is `configuration`, the name of this option. Thus we need to explicitly wire the former into the module arguments. See discussion at https://github.com/nix-community/home-manager/issues/3716
This commit is contained in:
parent
9438e56a7b
commit
ddcbf676ba
1 changed files with 14 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
|||
{ config, extendModules, lib, ... }:
|
||||
{ config, name, extendModules, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -8,8 +8,19 @@ with lib;
|
|||
options = {
|
||||
configuration = mkOption {
|
||||
type = let
|
||||
stopRecursion = { specialization = mkOverride 0 { }; };
|
||||
extended = extendModules { modules = [ stopRecursion ]; };
|
||||
extended = extendModules {
|
||||
modules = [{
|
||||
# Prevent infinite recursion
|
||||
specialization = mkOverride 0 { };
|
||||
|
||||
# If used inside the NixOS/nix-darwin module, we get conflicting definitions
|
||||
# of `name` inside the specialization: one is the user name coming from the
|
||||
# NixOS module definition and the other is `configuration`, the name of this
|
||||
# option. Thus we need to explicitly wire the former into the module arguments.
|
||||
# See discussion at https://github.com/nix-community/home-manager/issues/3716
|
||||
_module.args.name = mkForce name;
|
||||
}];
|
||||
};
|
||||
in extended.type;
|
||||
default = { };
|
||||
visible = "shallow";
|
||||
|
|
Loading…
Reference in a new issue