Skip to content
Snippets Groups Projects
Select Git revision
  • 7199f3742c88f05dec154a91a6d8e1dca7ac1701
  • master default
2 results

rules-language.mk

Blame
  • 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: