Files
tendermint/docs/presubmit.sh
Thane Thomson ef4e37b532 ci: Restore ToC check for ADRs/RFCs (#9180)
* 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>
2022-08-06 13:19:05 -04:00

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