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, ... }:
|
{ pkgs, ... }:
|
||||||
final: prev:
|
final: prev:
|
||||||
rec {
|
rec {
|
||||||
|
maintainers = import ../../maintainers.nix;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Create a value to be accessable on the Elisp side as a variable.
|
Create a value to be accessable on the Elisp side as a variable.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
# Unit Module
|
|
@ -34,9 +34,60 @@ let
|
||||||
|
|
||||||
src = ./.;
|
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
|
in
|
||||||
{
|
{
|
||||||
options = {
|
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 {
|
fg42.version = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
visible = true;
|
visible = true;
|
||||||
|
@ -197,6 +248,10 @@ in
|
||||||
'')
|
'')
|
||||||
];
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
maintainers = [ maintainers.lxsameer ];
|
||||||
|
doc = ./README.md;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue