forked from FG42/FG42
Add the meta.maintainers and meta.doc options in the unit module
This commit is contained in:
parent
73f574795a
commit
e67e3fbe1f
|
@ -16,6 +16,8 @@
|
|||
{ pkgs, ... }:
|
||||
final: prev:
|
||||
rec {
|
||||
maintainers = import ../../maintainers.nix;
|
||||
|
||||
/*
|
||||
Create a value to be accessable on the Elisp side as a variable.
|
||||
*/
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
# Unit Module
|
|
@ -34,9 +34,60 @@ let
|
|||
|
||||
src = ./.;
|
||||
};
|
||||
|
||||
maintainer = mkOptionType {
|
||||
name = "maintainer";
|
||||
check = email: elem email (attrValues lib.maintainers);
|
||||
merge = loc: defs: listToAttrs (singleton (nameValuePair (last defs).file (last defs).value));
|
||||
};
|
||||
|
||||
listOfMaintainers = types.listOf maintainer // {
|
||||
# Returns list of
|
||||
# { "module-file" = [
|
||||
# "maintainer1 <first@nixos.org>"
|
||||
# "maintainer2 <second@nixos.org>" ];
|
||||
# }
|
||||
merge = loc: defs:
|
||||
zipAttrs
|
||||
(flatten (imap1
|
||||
(n: def: imap1
|
||||
(m: def':
|
||||
maintainer.merge (loc ++ [ "[${toString n}-${toString m}]" ])
|
||||
[{ inherit (def) file; value = def'; }])
|
||||
def.value)
|
||||
defs));
|
||||
};
|
||||
docFile = types.path // {
|
||||
# Returns tuples of
|
||||
# { file = "module location"; value = <path/to/doc.xml>; }
|
||||
merge = loc: defs: defs;
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
meta = {
|
||||
maintainers = mkOption {
|
||||
type = listOfMaintainers;
|
||||
internal = true;
|
||||
default = [ ];
|
||||
example = literalExpression ''[ lib.maintainers.all ]'';
|
||||
description = lib.mdDoc ''
|
||||
List of maintainers of each module. This option should be defined at
|
||||
most once per module.
|
||||
'';
|
||||
};
|
||||
|
||||
doc = mkOption {
|
||||
type = docFile;
|
||||
internal = true;
|
||||
example = "./meta.chapter.md";
|
||||
description = lib.mdDoc ''
|
||||
Documentation prologue for the set of options of each module. This
|
||||
option should be defined at most once per module.
|
||||
'';
|
||||
};
|
||||
};
|
||||
fg42.version = mkOption {
|
||||
type = types.str;
|
||||
visible = true;
|
||||
|
@ -197,6 +248,10 @@ in
|
|||
'')
|
||||
];
|
||||
|
||||
meta = {
|
||||
maintainers = [ maintainers.lxsameer ];
|
||||
doc = ./README.md;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue