CONFFILE    := "pelicanconf.py"
PUBLISHCONF := "publishconf.py"
PELICANOPTS := ""
SERVER      := "localhost"
	
default:
  just --list

help:
	@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html   '
	@echo 'Set the RELATIVE variable to 1 to enable relative urls                    '


# (re)generate the web site
html:
	pelican content -o output -s "{{CONFFILE}}" {{PELICANOPTS}}

# remove the generated files
clean:
	[ ! -d "output" ] || rm -rf output

# regenerate files upon modification 
regenerate:
	pelican -r content -o output -s "{{CONFFILE}}" {{PELICANOPTS}}

# serve site at http://localhost:8000
serve:
	pelican -l content -o output -s "{{CONFFILE}}" {{PELICANOPTS}}

# serve (as root) to {{SERVER}}:80    
serve-global:
	pelican -l content -o output -s "{{CONFFILE}}" {{PELICANOPTS}} -b {{SERVER}}

# serve and regenerate together      
devserver:
	pelican -lr content -o output -s "{{CONFFILE}}" {{PELICANOPTS}}

# regenerate and serve on 0.0.0.0    
devserver-global:
	pelican -lr content -o output -s "{{CONFFILE}}" {{PELICANOPTS}} -b 0.0.0.0

# generate using production settings
publish:
	pelican content -o output -s "{{PUBLISHCONF}}" {{PELICANOPTS}}
	rsync -e ssh -av --delete-after /Users/pascal/Documents/craft-letter/output/ craftletter@ssh-craftletter.alwaysdata.net:/home/craftletter/www 

# connect to production server
ssh:
	ssh craftletter@ssh-craftletter.alwaysdata.net

# Create the skeleton for a new issue of the newsletter, and reference it into the home page
new number:
	PYTHONPATH=PWD venv/bin/python ./scripts/create_newsletter.py --number={{number}}

# generate HTML email                
mail file:
	PYTHONPATH=PWD venv/bin/python ./scripts/prepare_email.py {{file}}

# Format the content of a given newsletter
format number:
	PYTHONPATH=PWD venv/bin/python ./scripts/format.py --number={{number}}

