mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-03 03:35:19 +00:00
* Import presubmit TOC check script from master and fix warning Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix misspelled ADR link discovered by presubmit script Signed-off-by: Thane Thomson <connect@thanethomson.com> * Restore docs-toc workflow Signed-off-by: Thane Thomson <connect@thanethomson.com> * Create makefile target for docs ToC check Signed-off-by: Thane Thomson <connect@thanethomson.com> * Use makefile target in CI workflow for docs ToC check Signed-off-by: Thane Thomson <connect@thanethomson.com>
40 lines
933 B
Bash
Executable File
40 lines
933 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# This script verifies that each document in the docs and architecture
|
|
# directory has a corresponding table-of-contents entry in its README file.
|
|
#
|
|
# This can be run manually from the command line.
|
|
# It is also run in CI via the docs-toc.yml workflow.
|
|
#
|
|
set -euo pipefail
|
|
|
|
readonly base="$(dirname $0)"
|
|
cd "$base"
|
|
|
|
readonly workdir="$(mktemp -d)"
|
|
trap "rm -fr -- '$workdir'" EXIT
|
|
|
|
checktoc() {
|
|
local dir="$1"
|
|
local tag="$2"'-*-*'
|
|
local out="$workdir/${dir}.out.txt"
|
|
(
|
|
cd "$dir" >/dev/null
|
|
find . -maxdepth 1 -type f -name "$tag" -not -exec grep -q "({})" README.md ';' -print
|
|
) > "$out"
|
|
if [[ -s "$out" ]] ; then
|
|
echo "-- The following files in $dir lack a ToC entry:
|
|
"
|
|
cat "$out"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
err=0
|
|
|
|
# Verify that each RFC and ADR has a ToC entry in its README file.
|
|
checktoc architecture adr || ((err++))
|
|
checktoc rfc rfc || ((err++))
|
|
|
|
exit $err
|