Skip to content

Commit 0c9762f

Browse files
committed
Improve check_toc rule in Makefile
1 parent d14fb52 commit 0c9762f

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

Makefile

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,6 @@ FORK_CHOICE_DIR = ./fork_choice
2828
# To check generator matching:
2929
#$(info $$GENERATOR_TARGETS is [${GENERATOR_TARGETS}])
3030

31-
MARKDOWN_FILES = $(wildcard $(SPEC_DIR)/*/*.md) \
32-
$(wildcard $(SPEC_DIR)/*/*/*.md) \
33-
$(wildcard $(SPEC_DIR)/_features/*/*.md) \
34-
$(wildcard $(SPEC_DIR)/_features/*/*/*.md) \
35-
$(wildcard $(SSZ_DIR)/*.md)
36-
3731
ALL_EXECUTABLE_SPEC_NAMES = phase0 altair bellatrix capella deneb electra whisk eip6800 eip7732
3832
# The parameters for commands. Use `foreach` to avoid listing specs again.
3933
COVERAGE_SCOPE := $(foreach S,$(ALL_EXECUTABLE_SPEC_NAMES), --cov=eth2spec.$S.$(TEST_PRESET_TYPE))
@@ -141,13 +135,33 @@ endif
141135
open_cov:
142136
((open "$(COV_INDEX_FILE)" || xdg-open "$(COV_INDEX_FILE)") &> /dev/null) &
143137

138+
###############################################################################
139+
# Table of Contents
140+
###############################################################################
141+
142+
# When using .ONESHELL, bail on errors.
143+
.SHELLFLAGS = -e
144+
145+
# This contains all markdown files with specifications.
146+
MARKDOWN_FILES = $(wildcard $(SPEC_DIR)/**/*.md) \
147+
$(wildcard $(SSZ_DIR)/*.md)
148+
149+
# Check all files and error if any ToC were modified.
144150
check_toc: $(MARKDOWN_FILES:=.toc)
151+
@[ "$$(find . -name '*.md.tmp' -print -quit)" ] && exit 1 || exit 0
145152

153+
# Generate ToC sections & save copy of original if modified.
154+
.ONESHELL:
146155
%.toc:
147-
cp $* $*.tmp && \
148-
doctoc $* && \
149-
diff -q $* $*.tmp && \
150-
rm $*.tmp
156+
@cp $* $*.tmp
157+
@doctoc $* > /dev/null
158+
@if diff -q $* $*.tmp > /dev/null; then \
159+
echo "Good $*"; \
160+
rm $*.tmp; \
161+
else \
162+
echo "\033[1;33m Bad $*\033[0m"; \
163+
echo "\033[1;34m See $*.tmp\033[0m"; \
164+
fi
151165

152166
codespell:
153167
codespell . --skip "./.git,./venv,$(PY_SPEC_DIR)/.mypy_cache" -I .codespell-whitelist

0 commit comments

Comments
 (0)