Files
lektor-recipes/Makefile
2022-07-14 01:22:28 +02:00

109 lines
2.8 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PROJDIR := src
TEXER := lualatex
.PHONY: help dev dist clean plugins clean-all server build deploy pdf-clean pdf find-links
help:
@echo
@echo ' dev - Switch to development branch'
@echo ' dist - Switch to distribution branch'
@echo ' clean - Removes all temporary server-build files (not ./bin)'
@echo ' plugins - Clean and rebuild plugin cache'
@echo ' clean-all - Rebuild everything (not ./bin)'
@echo
@echo ' server - Start lektor server with live change updates'
@echo ' build - Build deployable website into ./bin'
@echo ' deploy - Custom rsync command to sync ./bin to remote server'
@echo ' pdf - Generate PDF from tex (after build)'
@echo
@echo ' find-links - Search for cross reference between recipes'
@echo
define switch_to
@echo Set source to $(1)
@rm $(PROJDIR)/content/recipes; ln -s $(1) $(PROJDIR)/content/recipes
endef
# Clean
dev:
$(call switch_to, '../../data/development/')
dist:
$(call switch_to, '../../data/distribution/')
clean:
@echo 'Cleaning output'
@cd '$(PROJDIR)' && lektor clean --yes -v
plugins:
@echo 'Cleaning plugins'
@cd '$(PROJDIR)' && lektor plugins flush-cache && lektor plugins list
clean-all: clean plugins
# Build
server:
@cd '$(PROJDIR)' && lektor server # -f ENABLE_PDF_EXPORT
build: dist
@cd '$(PROJDIR)' && \
lektor build --output-path ../bin --buildstate-path ../build-state -f ENABLE_PDF_EXPORT
@echo
@echo 'Checking dead links ...'
@python3 extras/find-dead-links.py
deploy:
@echo
@echo 'Warning: This will not(!) build but sync all files in ./bin'
@( read -p "Continue? [y/N]: " sure && case "$$sure" in [yY]) true;; *) false;; esac )
@echo # --dry-run
rsync -rclzv --exclude=.lektor --exclude=.DS_Store --delete bin/ vps:/srv/http/recipe-lekture
pdf-clean:
@rm -f extras/pdf-export/*.{aux,log,out,toc}
pdf-build:
@echo
@echo 'Generating PDF from tex source ...'
@echo 'Check if $(TEXER) exists'
@which $(TEXER)
@cd 'extras/pdf-export/' && \
SECONDS=0; \
for i in 1 2; do \
for alt in de en; do \
fname="pdf-$${alt}.tex"; \
echo "$$ $(TEXER) $${fname} [$${i}]"; \
$(TEXER) $${fname} > /dev/null; \
done; \
done; \
echo "done. finished after $${SECONDS}s."
mv extras/pdf-export/pdf-*.pdf bin/static
pdf: pdf-clean pdf-build pdf-clean
# Helper methods on all recipes
find-links:
@echo
@cd '$(PROJDIR)/content/recipes' && \
find */*.lr -exec grep --color=auto -i ".\.\./[^ ]*" -o {} + \
|| echo 'nothing found.'
@echo
find-yield:
@echo
@cd '$(PROJDIR)/content/recipes' && \
find */*.lr -exec grep "^yield: .*" -o {} \; \
| cut -d' ' -f 2- | tr -d '[0-9-.]' | sort -u \
|| echo 'nothing found.'
@echo
find-time:
@cd '$(PROJDIR)/content/recipes' && \
find */*.lr -exec grep "^time: .*" -o {} \; \
| cut -d' ' -f 2- | sort -n -u \
|| echo 'nothing found.'