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)