refactor(flake): reuse package discovery utility
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
system,
|
system,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
util = import ../dotfiles/util.nix { inherit lib; };
|
||||||
|
|
||||||
dotfiles = import ../dotfiles {
|
dotfiles = import ../dotfiles {
|
||||||
inherit
|
inherit
|
||||||
inputs
|
inputs
|
||||||
@@ -27,6 +29,7 @@ in
|
|||||||
lib
|
lib
|
||||||
root
|
root
|
||||||
system
|
system
|
||||||
|
util
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,30 +3,18 @@
|
|||||||
lib,
|
lib,
|
||||||
root,
|
root,
|
||||||
system,
|
system,
|
||||||
|
util,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||||
|
|
||||||
packageDirs =
|
packageFiles = builtins.filter (path: builtins.baseNameOf (toString path) == "package.nix") (
|
||||||
dir:
|
util.collectNixFiles (root + "/src")
|
||||||
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)
|
|
||||||
);
|
|
||||||
|
|
||||||
package = dir: {
|
package = packageFile: {
|
||||||
name = builtins.baseNameOf (toString dir);
|
name = builtins.baseNameOf (toString (builtins.dirOf packageFile));
|
||||||
value = import (dir + "/package.nix") {
|
value = import packageFile {
|
||||||
inherit
|
inherit
|
||||||
lib
|
lib
|
||||||
pkgs
|
pkgs
|
||||||
@@ -35,4 +23,4 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
builtins.listToAttrs (map package (packageDirs (root + "/src")))
|
builtins.listToAttrs (map package packageFiles)
|
||||||
|
|||||||
Reference in New Issue
Block a user