Turn module into file path.

If a module is an attrset deduplicating imports does not work properly
and would lead to the module system complaining about redefining
options. Here is an example:

error: The option `age.identityPaths' in `/nix/store/wn50ysifrfp5qj5pp3jqpyvwh8ksz36y-source/machines/foo' is already declared in `/nix/store/wn50ysifrfp5qj5pp3jqpyvwh8ksz36y-source/common/ddclient/default.nix'.

when common/ddclient/default.nix and machines/foo/default.nix is:

{ ..., agenix, ... }: {
  imports = [
    agenix.nixosModules.age
  ];
}

Turning the module into a filepath fixes the issue.
This commit is contained in:
Félinàun Chapeau 2024-02-05 09:38:26 +01:00
parent 417caa847f
commit bc5eaf40ca
No known key found for this signature in database
GPG key ID: B650D5179FA8AD6E

View file

@ -23,13 +23,13 @@
}: let }: let
eachSystem = nixpkgs.lib.genAttrs (import systems); eachSystem = nixpkgs.lib.genAttrs (import systems);
in { in {
nixosModules.age = import ./modules/age.nix; nixosModules.age = ./modules/age.nix;
nixosModules.default = self.nixosModules.age; nixosModules.default = self.nixosModules.age;
darwinModules.age = import ./modules/age.nix; darwinModules.age = ./modules/age.nix;
darwinModules.default = self.darwinModules.age; darwinModules.default = self.darwinModules.age;
homeManagerModules.age = import ./modules/age-home.nix; homeManagerModules.age = ./modules/age-home.nix;
homeManagerModules.default = self.homeManagerModules.age; homeManagerModules.default = self.homeManagerModules.age;
overlays.default = import ./overlay.nix; overlays.default = import ./overlay.nix;