From aec9eed0b2df068b4e5e06829ff0acbab6d02398 Mon Sep 17 00:00:00 2001 From: kurogeek Date: Wed, 23 Jul 2025 11:43:27 +0700 Subject: [PATCH] clanService framework with test support --- flake.nix | 1 + modules/clan/flake-module.nix | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 modules/clan/flake-module.nix 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; +}