From c5043a67be235cdd53c45748cffa2f6d12b120cd Mon Sep 17 00:00:00 2001 From: alexion Date: Sat, 19 Sep 2026 16:29:53 -0400 Subject: [PATCH] refactor(flake): reuse package discovery utility --- src/flake/default.nix | 3 +++ src/flake/packages.nix | 28 ++++++++-------------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/flake/default.nix b/src/flake/default.nix index 1ff63e4..04f425d 100644 --- a/src/flake/default.nix +++ b/src/flake/default.nix @@ -6,6 +6,8 @@ system, }: let + util = import ../dotfiles/util.nix { inherit lib; }; + dotfiles = import ../dotfiles { inherit inputs @@ -27,6 +29,7 @@ in lib root system + util ; }; diff --git a/src/flake/packages.nix b/src/flake/packages.nix index 315526b..0498306 100644 --- a/src/flake/packages.nix +++ b/src/flake/packages.nix @@ -3,30 +3,18 @@ lib, root, system, + util, }: let pkgs = inputs.nixpkgs.legacyPackages.${system}; - packageDirs = - dir: - lib.flatten ( - lib.mapAttrsToList ( - name: type: - let - path = dir + "/${name}"; - in - if type == "directory" then - packageDirs path - else if type == "regular" && name == "package.nix" then - [ dir ] - else - [ ] - ) (builtins.readDir dir) - ); + packageFiles = builtins.filter (path: builtins.baseNameOf (toString path) == "package.nix") ( + util.collectNixFiles (root + "/src") + ); - package = dir: { - name = builtins.baseNameOf (toString dir); - value = import (dir + "/package.nix") { + package = packageFile: { + name = builtins.baseNameOf (toString (builtins.dirOf packageFile)); + value = import packageFile { inherit lib pkgs @@ -35,4 +23,4 @@ let }; }; in -builtins.listToAttrs (map package (packageDirs (root + "/src"))) +builtins.listToAttrs (map package packageFiles)