From 0bbbbcd85e74266e4973f9888a1518b38749e3cb Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Fri, 18 Nov 2022 12:45:58 +0100 Subject: [PATCH] Add Makefile for blog compilation and deployment --- Makefile | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5d0efca --- /dev/null +++ b/Makefile @@ -0,0 +1,43 @@ +# pelican variables +P_OUTPUT?=output +P_OPT?= + +# deploy variables +D_BIN?=rsync +D_OPT?=-avz --delete +D_DST?="blog:$(D_FOLDER)" + +# venv variables + +VENV_SOURCE?=.venv +REQUIREMENT?=requirements.txt +PYTHON_BIN?=python +VENV_CMD?=. $(VENV_SOURCE)/bin/activate + +# Pelican part + +.PHONY: build +build: $(VENV_SOURCE)/dep + $(VENV_CMD) && pelican -o $(P_OUTPUT) $(P_OPT) + +.PHONY: deploy +deploy: + [ -d $(P_OUTPUT) ] && $(D_BIN) $(D_OPT) $(P_OUTPUT)/ $(D_DST) + +.PHONY: clean +clean: + [ -d $(P_OUTPUT) ] && rm -rf $(P_OUTPUT) + +# venv management +$(VENV_SOURCE): + $(PYTHON_BIN) -m venv $(VENV_SOURCE) + +$(REQUIREMENT): + +$(VENV_SOURCE)/dep: $(VENV_SOURCE) $(REQUIREMENT) + touch $(VENV_SOURCE)/dep + $(VENV_CMD) && pip install -r $(REQUIREMENT) + +.PHONY: clean-venv +clean-venv: + [ -d $(VENV_SOURCE) ] && rm -rf $(VENV_SOURCE)