PELICANOPTS= BASEDIR=$(CURDIR) INPUTDIR=$(BASEDIR)/content OUTPUTDIR=$(BASEDIR)/output CONFFILE=$(BASEDIR)/pelicanconf.py PUBLISHCONF=$(BASEDIR)/publishconf.py VENV := $(shell echo $${VIRTUAL_ENV-$(shell pwd)/.venv}) VIRTUALENV = python3 -m venv INSTALL_STAMP = $(VENV)/.install.stamp PYTHON=$(VENV)/bin/python PELICAN=$(VENV)/bin/pelican PIP=$(VENV)/bin/pip GIT=/usr/bin/git install: $(INSTALL_STAMP) $(INSTALL_STAMP): $(PYTHON) requirements.txt $(VENV)/bin/pip install -r requirements.txt touch $(INSTALL_STAMP) mkdir output virtualenv: $(PYTHON) $(PYTHON): $(VIRTUALENV) $(VENV) html: install $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) clean: [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) rm -rf $(VENV) serve: install $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) regenerate: cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server & $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) publish: install $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) echo "blog.notmyidea.org" > $(OUTPUTDIR)/CNAME github: publish ghp-import -n $(OUTPUTDIR) $(GIT) push origin gh-pages up: $(GIT) add content/* && $(GIT) commit -am "Update blog" && $(GIT) push && make github .PHONY: html clean serve devserver publish