diff --git a/flake.nix b/flake.nix index 249c10f..0e75e45 100644 --- a/flake.nix +++ b/flake.nix @@ -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"