Improve word count target (#8)
Some checks failed
Continuous Integration / words (push) Has been cancelled
Continuous Integration / lint (push) Has been cancelled

Recurse into source subdirectories and print a total, backported from
em_book. The previous 'wc -w source/*' only counted top-level files and
errored on subdirectories.

- Use find to recurse and sort output for stable ordering
- Print a running total
- Reference SOURCE_FOLDER instead of hardcoded 'source'
- Set SHELL := /bin/bash (needed for process substitution)
- Add .PHONY declarations

Co-authored-by: Dunya Kirkali <exedev@writting.exe.xyz>
Co-authored-by: Shelley <shelley@exe.dev>
This commit is contained in:
Dunya Kirkali
2026-08-08 22:07:18 +02:00
committed by GitHub
parent 59ff4fc3a3
commit c0c95fdff5

View File

@@ -1,5 +1,9 @@
SOURCE_FOLDER := source
SHELL := /bin/bash
.PHONY: all count clean lint
ASCIIDOC_FILES := $(wildcard $(SOURCE_FOLDER)/*.adoc)
FIGURES = $(shell find . -name '*.svg')
@@ -30,7 +34,14 @@ $(EPUB_PATH): $(ASCIIDOC_FILES) $(FIGURES) Makefile metadata.yaml | output
-r asciidoctor-mathematical
count:
wc -w source/*
@dir="$(SOURCE_FOLDER)"; \
total=0; \
while read -r file; do \
words=$$(wc -w < "$$file"); \
total=$$((total + words)); \
printf "%6d %s\n" "$$words" "$$file"; \
done < <(find "$$dir" -type f -name "*.adoc" | sort); \
printf "%6d total\n" "$$total"
epubcheck: $(EPUB_PATH)
epubcheck $(EPUB_PATH)