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 = virtualenv -p /usr/bin/python3.7 INSTALL_STAMP = $(VENV)/.install.stamp PYTHON=$(VENV)/bin/python PELICAN=$(VENV)/bin/pelican PIP=$(VENV)/bin/pip GIT=LD_PRELOAD=/home/dan/dev/GitBSLR/gitbslr.so /usr/bin/git DEBUG ?= 0 ifeq ($(DEBUG), 1) PELICANOPTS += -D endif install: $(INSTALL_STAMP) $(INSTALL_STAMP): $(PYTHON) requirements.txt $(VENV)/bin/pip install -r requirements.txt touch $(INSTALL_STAMP) 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 ifdef PORT cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server $(PORT) else cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server 8000 endif regenerate: cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server & $(PELICAN) -r $(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