conform
Conform your code to policies, e.g. in a pre-commit hook.
This version is wrapped, it can auto-enhance the conventional
commit scopes with your cells
as follows:
{ inputs, cell}: let
inherit (inputs.std) std;
in {
default = std.lib.mkShell {
/* ... */
nixago = [
(std.nixago.conform {configData = {inherit (inputs) cells;};})
];
};
}
Definition:
{
inputs,
cell,
}: let
l = nixpkgs.lib // builtins;
inherit (inputs) nixpkgs;
in {
configData = {};
format = "yaml";
output = ".conform.yaml";
packages = [nixpkgs.conform];
apply = d: {
policies =
[]
++ (l.optional (d ? commit) {
type = "commit";
spec =
d.commit
// l.optionalAttrs (d ? cells) {
conventional =
d.commit.conventional
// {
scopes =
d.commit.conventional.scopes
++ (l.subtractLists l.systems.doubles.all (l.attrNames d.cells));
};
};
})
++ (l.optional (d ? license) {
type = "license";
spec = d.license;
});
};
}