sloth-flake.nvim/lib/mkPluginsFromInputs.nix

23 lines
577 B
Nix

{pkgs, ...}: let
inherit (builtins) attrNames filter foldl' mapAttrs;
in {
mkPluginsFromInputs = {
inputs,
predicate ? pkgs.lib.strings.hasPrefix "plugin-",
nameMap ? builtins.substring 7 (-1),
buildVimPlugin ? pkgs.vimUtils.buildVimPlugin,
}: let
names = filter predicate (attrNames inputs);
mkPlugin = m: k: let
name = nameMap k;
pluginDef = {
inherit name;
src = inputs.${k};
};
in
m // {${name} = pluginDef;};
plugins = foldl' mkPlugin {} names;
in
mapAttrs (_: buildVimPlugin) plugins;
}