forked from lix-project/lix
Improve nix.1 manpage generator
This commit is contained in:
parent
6f19c776db
commit
069340179e
|
@ -1,5 +1,4 @@
|
||||||
def show_flags:
|
def show_flags:
|
||||||
|
|
||||||
.flags
|
.flags
|
||||||
| map_values(select(.category != "config"))
|
| map_values(select(.category != "config"))
|
||||||
| to_entries
|
| to_entries
|
||||||
|
@ -13,30 +12,29 @@ def show_flags:
|
||||||
;
|
;
|
||||||
|
|
||||||
def show_synopsis:
|
def show_synopsis:
|
||||||
|
"`" + .command + "` " + (.args | map("*" + .label + "*" + (if has("arity") then "" else "..." end)) | join(" ")) + "\n\n"
|
||||||
"`" + .command + "` " + (.args | map("*" + .label + "*" + (if has("arity") then "" else "..." end)) | join(" ")) + "\n"
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
"# Synopsis\n\n"
|
def show_command:
|
||||||
+ ({"command": "nix", "args": .args} | show_synopsis)
|
. as $top |
|
||||||
+ "\n"
|
.section + " Name\n\n"
|
||||||
+ "# Common flags\n\n"
|
+ "`" + .command + "` - " + .def.description + "\n\n"
|
||||||
+ show_flags
|
+ .section + " Synopsis\n\n"
|
||||||
+ (.commands | to_entries | map(
|
+ ({"command": .command, "args": .def.args} | show_synopsis)
|
||||||
"# Operation `" + .key + "`\n\n"
|
+ (if (.def.flags | length) > 0 then
|
||||||
+ "## Synopsis\n\n"
|
.section + " Flags\n\n"
|
||||||
+ ({"command": ("nix " + .key), "args": .value.args} | show_synopsis)
|
+ (.def | show_flags)
|
||||||
+ "\n"
|
|
||||||
+ "## Description\n\n"
|
|
||||||
+ .value.description + "\n\n"
|
|
||||||
+ (if (.value.flags | length) > 0 then
|
|
||||||
"## Flags\n\n"
|
|
||||||
+ (.value | show_flags)
|
|
||||||
else "" end)
|
else "" end)
|
||||||
+ (if (.value.examples | length) > 0 then
|
+ (if (.def.examples | length) > 0 then
|
||||||
"## Examples\n\n"
|
.section + " Examples\n\n"
|
||||||
+ (.value.examples | map("- " + .description + "\n\n ```console\n " + .command + "\n ```\n" ) | join("\n"))
|
+ (.def.examples | map(.description + "\n\n```console\n" + .command + "\n```\n" ) | join("\n"))
|
||||||
+ "\n"
|
+ "\n"
|
||||||
else "" end)
|
else "" end)
|
||||||
) | join(""))
|
+ (if .def.commands then .def.commands | to_entries | map(
|
||||||
|
"# Subcommand `" + ($top.command + " " + .key) + "`\n\n"
|
||||||
|
+ ({"command": ($top.command + " " + .key), "section": "##", "def": .value} | show_command)
|
||||||
|
) | join("") else "" end)
|
||||||
|
;
|
||||||
|
|
||||||
|
"Title: nix\n\n"
|
||||||
|
+ ({"command": "nix", "section": "#", "def": .} | show_command)
|
||||||
|
|
|
@ -142,6 +142,11 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs
|
||||||
printHelp(programName, std::cout);
|
printHelp(programName, std::cout);
|
||||||
throw Exit();
|
throw Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string description() override
|
||||||
|
{
|
||||||
|
return "a tool for reproducible and declarative configuration management";
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void mainWrapped(int argc, char * * argv)
|
void mainWrapped(int argc, char * * argv)
|
||||||
|
|
Loading…
Reference in a new issue