diff --git a/flake.nix b/flake.nix index e92ea84..61598fe 100644 --- a/flake.nix +++ b/flake.nix @@ -38,6 +38,7 @@ ./machines ./inventories + ./modules/clan/flake-module.nix ]; } ); diff --git a/modules/clan/flake-module.nix b/modules/clan/flake-module.nix new file mode 100644 index 0000000..2c4fc63 --- /dev/null +++ b/modules/clan/flake-module.nix @@ -0,0 +1,28 @@ +{ inputs, lib, ... }: +{ + imports = + let + # Get all subdirectories in the current directory + dirContents = builtins.readDir ./.; + + # Filter to include only directories that have a flake-module.nix file + # and exclude special directories like 'result' + validModuleDirs = builtins.filter ( + name: + name != "result" + && dirContents.${name} == "directory" + && builtins.pathExists (./. + "/${name}/flake-module.nix") + ) (builtins.attrNames dirContents); + + # Create import paths for each valid directory + imports = (map (name: ./. + "/${name}/flake-module.nix") validModuleDirs) ++ [ + (import (inputs.clan-core + "/lib/flake-parts/clan-nixos-test.nix") { + inherit lib; + flake-parts-lib = inputs.flake-parts.lib; + self = inputs.clan-core; + inputs = inputs.clan-core.clan.self.inputs; + }) + ]; + in + imports; +}