lib/plugins: introduce mkMetaModule

This commit is contained in:
Matt Sturgeon 2025-01-27 18:55:45 +00:00
parent e908e344f4
commit 1a5f1b4393
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 47 additions and 20 deletions

View file

@ -82,4 +82,33 @@
];
};
};
/**
Produce a module that defines a plugin's metadata.
*/
mkMetaModule =
{
loc,
maintainers,
description,
url ? null,
}@args:
{ options, ... }:
let
opts = lib.getAttrFromPath loc options;
url =
if args.url or null == null then
opts.package.default.meta.homepage or (throw "unable to get URL for `${lib.showOption loc}`.")
else
args.url;
in
{
meta = {
inherit maintainers;
nixvimInfo = {
inherit description url;
path = loc;
};
};
};
}