nixos: Check for duplicate assignments
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
let
|
||||
inherit (builtins) head tail mapAttrs attrValues;
|
||||
inherit (lib) flatten optional mkOption mkDefault mkOptionType;
|
||||
inherit (lib.my) homeStateVersion mkOpt' commonOpts inlineModule';
|
||||
inherit (lib.my) homeStateVersion mkOpt' commonOpts inlineModule' applyAssertions;
|
||||
|
||||
cfg = config.home-manager;
|
||||
|
||||
@@ -40,7 +40,11 @@ let
|
||||
] ++ (tail defs);
|
||||
};
|
||||
|
||||
homeOpts = with lib.types; { config, ... }: {
|
||||
homeOpts = with lib.types; { ... }@args:
|
||||
let
|
||||
config' = args.config;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
inherit (commonOpts) system nixpkgs home-manager;
|
||||
# TODO: docCustom for home-manager?
|
||||
@@ -53,16 +57,16 @@ let
|
||||
description = "home-manager configuration module.";
|
||||
type = mkOptionType {
|
||||
name = "home-manager configuration";
|
||||
merge = _: defs: mkHome {
|
||||
config' = config;
|
||||
merge = _: defs: applyAssertions config (mkHome {
|
||||
inherit config';
|
||||
defs = map (d: inlineModule' d.file d.value) defs;
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
nixpkgs = mkDefault config.home-manager;
|
||||
nixpkgs = mkDefault config'.home-manager;
|
||||
};
|
||||
};
|
||||
in
|
||||
|
Reference in New Issue
Block a user