[refactor]: Automate package imports in flake.nix

This commit is contained in:
Tristan D. 2024-10-10 17:03:28 +02:00
parent 3507eba68b
commit 7fa0652660
Signed by: tristan
SSH key fingerprint: SHA256:9oFM1J63hYWJjCnLG6C0fxBS15rwNcWwdQNMOHYKJ/4

View file

@ -187,16 +187,31 @@
formatter = {
${system} = pkgs.nixpkgs-fmt;
};
packages."${system}" = {
spotube = pkgs.callPackage ./pkgs/spotube.nix { };
awatcher = pkgs.callPackage ./pkgs/awatcher.nix { };
emacs-lsp-booster = pkgs.callPackage ./pkgs/emacs-lsp-booster.nix { };
};
packages."${system}" =
let
# list paths
pkgs-paths-list = pkgs.lib.fileset.toList (pkgs.lib.fileset.fromSource (pkgs.lib.sources.sourceFilesBySuffices ./pkgs [ ".nix" ]));
# filename-extension parsed out
pkgs-paths = (builtins.map
(path: {
name = (pkgs.lib.strings.removeSuffix ".nix" (builtins.baseNameOf path));
path = path;
})
pkgs-paths-list);
# import each path
imported-pkgs = (pkgs.lib.attrsets.mergeAttrsList (builtins.map
(pkg: {
"${pkg.name}" = pkgs.callPackage pkg.path { };
})
pkgs-paths));
in
imported-pkgs;
diskoConfigurations = {
nixos-desk = import ./systems/nixos-desk/disko.nix;
nixos-pulse = import ./systems/nixos-pulse/disko.nix;
nixos-he4 = import ./systems/nixos-he4/disko.nix;
};
# replace this with a auto-importing variant like the packages decl. above (instead of callPackage we just need to import the path)
nixosConfigurations = nixpkgs.lib.attrsets.mergeAttrsList (
nixpkgs.lib.lists.forEach [
"nixos-desk"