diff --git a/flake.nix b/flake.nix index 5883ff5..3699804 100644 --- a/flake.nix +++ b/flake.nix @@ -19,7 +19,7 @@ homelabConfig = import ./config.nix; utils = import ./utils.nix { inherit inputs homelabConfig; }; - roles = import ./roles { inherit utils; }; + roles = import ./roles.nix { inherit utils lib; }; hosts = import ./hosts.nix { inherit homelabConfig diff --git a/roles.nix b/roles.nix new file mode 100644 index 0000000..45d5541 --- /dev/null +++ b/roles.nix @@ -0,0 +1,15 @@ +{ + lib, + utils, + ... +}: +lib.attrsets.mapAttrs' ( + name: _: + let + mod = utils.mkRole (import (./roles + "/${name}")); + in + { + name = builtins.replaceStrings [ ".nix" ] [ "" ] name; + value = mod; + } +) (builtins.readDir ./roles) diff --git a/roles/default.nix b/roles/default.nix deleted file mode 100644 index 0c6ed7d..0000000 --- a/roles/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - utils, - ... -}: -{ - # Utility - postgres = utils.mkRole (import ./postgres.nix); - podman = utils.mkRole (import ./podman.nix); - - # Services - sonarr = utils.mkRole (import ./sonarr.nix); - traefik = utils.mkRole (import ./traefik.nix); - authentik = utils.mkRole (import ./authentik); - forgejo = utils.mkRole (import ./forgejo.nix); -}