Select Git revision
rules-language.mk
rules-language.mk 6.13 KiB
SUBMODULES := $(wildcard course_* book_*)
COURSES := $(subst course_,,$(wildcard course_*))
BOOKS := $(subst book_,,$(wildcard book_*))
all: language
init_ccmtoolkit: init_ccmtoolkit_language
clean: clean_ccmtoolkit_language
debug_ccmtoolkit: debug_ccmtoolkit_language
.PHONY: debug_ccmtoolkit_language
debug_ccmtoolkit_language:
echo BOOKS: $(BOOKS)
echo COURSES: $(COURSES)
echo SUBMODULES: $(SUBMODULES)
define SUBMODULEMAKE =
.PHONY: $1__%
$1__%:
$(MAKE) -C $1 $$*
$1/%:
$(MAKE) -C $1 $$* -B
endef
$(foreach SUBMODULE,$(SUBMODULES),$(eval $(call SUBMODULEMAKE,$(SUBMODULE))))
.PHONY: init_ccmtoolkit_language
init_ccmtoolkit_language: $(call pattern_list,$(SUBMODULES),__init)
hash weasyprint
$(PYTHON) -c "import pantable"
.PHONY: clean_ccmtoolkit_language
clean_ccmtoolkit_language: $(call pattern_list,$(SUBMODULES),__clean)
BOOKMANIFESTS := $(foreach BOOK,$(BOOKS),book_$(BOOK)__$(_book)_$(BOOK)-manifest.yml)
.PHONY: language $(BOOKMANIFESTS)
language: $(BOOKMANIFESTS)
reports: reports/translations-worklog.pdf
combined-worklogs.sqlite: $(BUILDDIR)/repository-worklog.sqlite $(foreach SUBMODULE,$(SUBMODULES),$(SUBMODULE)/repository-worklog.sqlite) force
$(SQLITE3) $@ 'DROP TABLE IF EXISTS commits; CREATE TABLE commits (sha TEXT, author TEXT, date DATE, file TEXT, added INT, removed INT)'
for db in $(filter %.sqlite,$^); do
$(SQLITE3) $${db} .dump
done |
grep '^INSERT' |
$(SQLITE3) $@
combined-daylog.csv: force
$(or $(and $(TIMESHEETDOC),curl -s -L "https://docs.google.com/spreadsheets/d/$(TIMESHEETDOC)/export?format=csv" -o),touch) $@
combined-daylog.sqlite: combined-daylog.csv
$(SQLITE3) $@ "DROP TABLE IF EXISTS days; CREATE TABLE days (author TEXT, date DATE, start DATE, end DATE, breaks INT, sig TEXT, apr TEXT, hours INT)"
$(SQLITE3) $@ <<< ".mode csv" <<< ".import $< days"
combined-daylog.json: combined-daylog.csv
$(JQ) -M -e -s --raw-input 'split("\r\n") | .[1:] | map(split(",")) | select(.[6] != "") | map({author: .[0], date: .[1], hours: .[7]})' < $< > $@
reports/translations-worklog.md: combined-worklogs.sqlite combined-daylog.sqlite
now=$$(LANG=en_US date +%c)
ver=$(call versioninfo,$(PROJECT))
export IFS='|'
(
echo ---
echo title: Translations Worklog
echo subtitle: An automated report generated from $${ver}.
echo date: $${now}
echo header-includes: