aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-08-18 15:15:35 +0200
committerEelco Dolstra <edolstra@gmail.com>2020-08-18 15:15:35 +0200
commit069340179e91202b2d3adc5ea1e3023ba2a51691 (patch)
treef00e71e0c89dffedea417ecb606e9f1dc8e4928f /doc
parent6f19c776db280a46e84d6e84d83814445869ef37 (diff)
Improve nix.1 manpage generator
Diffstat (limited to 'doc')
-rw-r--r--doc/manual/generate-manpage.jq72
1 files changed, 35 insertions, 37 deletions
diff --git a/doc/manual/generate-manpage.jq b/doc/manual/generate-manpage.jq
index cf06da0c8..d3cf1c601 100644
--- a/doc/manual/generate-manpage.jq
+++ b/doc/manual/generate-manpage.jq
@@ -1,42 +1,40 @@
def show_flags:
-
-.flags
-| map_values(select(.category != "config"))
-| to_entries
-| map(
- " - `--" + .key + "`"
- + (if .value.shortName then " / `" + .value.shortName + "`" else "" end)
- + (if .value.labels then " " + (.value.labels | map("*" + . + "*") | join(" ")) else "" end)
- + " \n"
- + " " + .value.description + "\n\n")
-| join("")
-;
+ .flags
+ | map_values(select(.category != "config"))
+ | to_entries
+ | map(
+ " - `--" + .key + "`"
+ + (if .value.shortName then " / `" + .value.shortName + "`" else "" end)
+ + (if .value.labels then " " + (.value.labels | map("*" + . + "*") | join(" ")) else "" end)
+ + " \n"
+ + " " + .value.description + "\n\n")
+ | join("")
+ ;
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"
-
-;
+def show_command:
+ . as $top |
+ .section + " Name\n\n"
+ + "`" + .command + "` - " + .def.description + "\n\n"
+ + .section + " Synopsis\n\n"
+ + ({"command": .command, "args": .def.args} | show_synopsis)
+ + (if (.def.flags | length) > 0 then
+ .section + " Flags\n\n"
+ + (.def | show_flags)
+ else "" end)
+ + (if (.def.examples | length) > 0 then
+ .section + " Examples\n\n"
+ + (.def.examples | map(.description + "\n\n```console\n" + .command + "\n```\n" ) | join("\n"))
+ + "\n"
+ else "" end)
+ + (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)
+ ;
-"# Synopsis\n\n"
-+ ({"command": "nix", "args": .args} | show_synopsis)
-+ "\n"
-+ "# Common flags\n\n"
-+ show_flags
-+ (.commands | to_entries | map(
- "# Operation `" + .key + "`\n\n"
- + "## Synopsis\n\n"
- + ({"command": ("nix " + .key), "args": .value.args} | show_synopsis)
- + "\n"
- + "## Description\n\n"
- + .value.description + "\n\n"
- + (if (.value.flags | length) > 0 then
- "## Flags\n\n"
- + (.value | show_flags)
- else "" end)
- + (if (.value.examples | length) > 0 then
- "## Examples\n\n"
- + (.value.examples | map("- " + .description + "\n\n ```console\n " + .command + "\n ```\n" ) | join("\n"))
- + "\n"
- else "" end)
- ) | join(""))
+"Title: nix\n\n"
++ ({"command": "nix", "section": "#", "def": .} | show_command)