# Depends: myrepos git mkdocs w3c-linkchecker libtext-hogan-perl

-include site.mk

domain ?= example.org
eventhost ?= event.$(domain)
shellhost ?= shell.$(domain)
githost ?= source.$(domain)
gitshellhost ?= $(shellhost)
matrixhost ?= matrix.$(domain)
organisation ?= Example orga
contact_sysadmins ?= contact sysadmins

MUSTACHE = cat source/source/USE.md | perl -MText::Hogan::Compiler -0777 -nE '\
 my $$compiler = Text::Hogan::Compiler->new;\
 my $$template = $$compiler->compile($$_);\
 say $$template->render({ \
 domain => "$(domain)", eventhost => "$(eventhost)", shellhost => "$(shellhost)", githost => "$(githost)", gitshellhost => "$(gitshellhost)", \
 matrixhost => "$(matrixhost)", \
 organisation => "$(organisation)", contact_sysadmins => "$(contact_sysadmins)" })'

all: doc

doc: docs $(patsubst %,docs/%,$(subst -,/,$(notdir $(wildcard source/*))))
	mkdocs build

check:
	checklink site/index.html

# TODO: drop symlink removal when 2020-06-19 is well in the past
docs:
	mkdir -p docs
	find docs -type l -delete
	$(MUSTACHE) < README.md > docs/index.md
	$(MUSTACHE) < SETUP.md > docs/setup.md

docs/%: source
	mkdir -p docs/$*
	$(MUSTACHE) < source/$(subst /,-,$*)/README.md > docs/$*/index.md
	$(if $(wildcard source/$(subst /,-,$*)/USE.md),\
		$(MUSTACHE) < source/$(subst /,-,$*)/USE.md > docs/$*/use.md)
	$(if $(wildcard source/$(subst /,-,$*)/ADMIN.md),\
		$(MUSTACHE) < source/$(subst /,-,$*)/ADMIN.md > docs/$*/admin.md)
	$(if $(wildcard source/$(subst /,-,$*)/SETUP.md),\
		$(MUSTACHE) < source/$(subst /,-,$*)/SETUP.md > docs/$*/setup.md)
	$(if $(wildcard source/$(subst /,-,$*)/DEVELOP.md),\
		$(MUSTACHE) < source/$(subst /,-,$*)/DEVELOP.md > docs/$*/devel.md)

init:
	mr update

clean:
	rm -rf site
	rm -rf docs

distclean: clean
	rm -rf source
	rm -f site.mk

.PHONY: all doc check clean distclean