diff --git a/pkgs/default.nix b/pkgs/default.nix index 924a2300c..911518c5b 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,5 +1,29 @@ -final: prev: { - # keep sources this first - sources = prev.callPackage (import ./_sources/generated.nix) { }; - # then, call packages with `final.callPackage` +final: prev: +let + sources = (import ./_sources/generated.nix) { inherit (final) fetchurl fetchgit; }; + + mkVimPlugin = plugin: + final.vimUtils.buildVimPluginFrom2Nix { + inherit (plugin) pname version src; + }; + + newPkgsSet = pkgSet: + let + prefix = "${pkgSet}-"; + + pkgSetBuilder = { + "vimPlugins" = mkVimPlugin; + }.${pkgSet}; + + + pkgsInSources = final.lib.mapAttrs' (name: value: final.lib.nameValuePair (final.lib.removePrefix prefix name) (value)) (final.lib.filterAttrs (n: v: final.lib.hasPrefix prefix n) sources); + in + final.lib.mapAttrs (n: v: pkgSetBuilder v) pkgsInSources; + +in +{ + inherit sources; + + vimPlugins = prev.vimPlugins // (newPkgsSet "vimPlugins"); + }