doc: generate man page

This commit uses the recent refactoring for defining flags to
automatically generate a man page. This finally allows us to define the
documentation for each flag in a single place.

The man page is generated on every build, if and only if `asciidoc` is
installed. When generated, it is placed in Cargo's `OUT_DIR` directory,
which is the same place that shell completions live.
This commit is contained in:
Andrew Gallant
2018-02-05 18:45:45 -05:00
parent b50ae9a99c
commit 6553940328
8 changed files with 291 additions and 1173 deletions

View File

@@ -20,17 +20,25 @@ mk_tarball() {
local gcc_prefix="$(gcc_prefix)"
local td="$(mktemp -d)"
local name="${PROJECT_NAME}-${TRAVIS_TAG}-${TARGET}"
mkdir -p "$td/$name/complete"
mkdir deployment
local staging="$td/$name"
mkdir -p "$staging/complete"
local out_dir="$(pwd)/deployment"
mkdir -p "$out_dir"
cp target/$TARGET/release/rg "$td/$name/rg"
"${gcc_prefix}strip" "$td/$name/rg"
cp {doc/rg.1,README.md,UNLICENSE,COPYING,LICENSE-MIT} "$td/$name/"
# Copy the ripgrep binary and strip it.
cp target/$TARGET/release/rg "$staging/rg"
"${gcc_prefix}strip" "$staging/rg"
# Copy the README and licenses.
cp {README.md,UNLICENSE,COPYING,LICENSE-MIT} "$staging/"
# Copy shell completion files.
cp \
target/"$TARGET"/release/build/ripgrep-*/out/{rg.bash,rg.fish,_rg.ps1} \
"$td/$name/complete/"
"$staging/complete/"
cp complete/_rg "$td/$name/complete/"
# Copy man page.
cp \
target/"$TARGET"/release/build/ripgrep-*/out/rg.1 \
"$td/$name/"
(cd "$td" && tar czf "$out_dir/$name.tar.gz" *)
rm -rf "$td"