diff --git a/Makefile b/Makefile index 5a4ae4d..192496d 100644 --- a/Makefile +++ b/Makefile @@ -10,19 +10,28 @@ articles != find * -type f -name "*.md" categories != ls -d */ -db.rec: $(articles) +databases = $(patsubst %/, .dbs/%.rec, $(categories)) + +default += $(databases) + +$(databases): .dbs/%.rec: %/ | .dbs/ + @mkdir -p $(@D) + @for entry in $(shell find $< -type f -name "*.md") ; do \ + sed -n '2,/^---$$/ {/^---$$/d; p}' "$$entry" |\ + sed -e 's/\[ //' -e 's/ \]//' |\ + tr -d '"' ;\ + printf "wordcount: %s\n" "$$(wc -w < $$entry)" ;\ + printf "file: %s\n\n" "$$entry" ;\ + done >> $@ + for entry in $(shell find $< -type f -name "*.md"); do \ + recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\ + done + +db.rec: $(databases) printf '%s\n' '%rec: guide' > $@ printf '%s\n' '%type: wordcount int' >> $@ printf '%s\n\n' '%sort: title' >> $@ - for x in $^ ; do \ - sed -n '2,/^---$$/ {/^---$$/d; p}' "$$x" |\ - sed -e 's/\[ //' -e 's/ \]//' |\ - tr -d '"' ;\ - printf "file: %s\n\n" "$$x" ;\ - done >> $@ - for entry in $^; do \ - recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\ - done + cat $^ >> $@ recsel $@ -e "requires != ''" -CR title,requires |\ while read title requires; do \ IFS=', ' && for provider in $$requires; do \