Replace Make with Just

This commit is contained in:
Pascal Le Merrer 2026-01-16 17:19:41 +01:00
parent af4c2d7241
commit d04d523bdf
3 changed files with 59 additions and 79 deletions

View file

@ -1,79 +0,0 @@
PY?=
PELICAN?=pelican
PELICANOPTS=
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py
DEBUG ?= 0
ifeq ($(DEBUG), 1)
PELICANOPTS += -D
endif
RELATIVE ?= 0
ifeq ($(RELATIVE), 1)
PELICANOPTS += --relative-urls
endif
SERVER ?= "0.0.0.0"
PORT ?= 0
ifneq ($(PORT), 0)
PELICANOPTS += -p $(PORT)
endif
help:
@echo 'Makefile for a pelican Web site '
@echo ' '
@echo 'Usage: '
@echo ' make html (re)generate the web site '
@echo ' make clean remove the generated files '
@echo ' make regenerate regenerate files upon modification '
@echo ' make publish generate using production settings '
@echo ' make serve [PORT=8000] serve site at http://localhost:8000'
@echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
@echo ' make devserver [PORT=8000] serve and regenerate together '
@echo ' make devserver-global regenerate and serve on 0.0.0.0 '
@echo ' make mail file=FILEPATH generate HTML email '
@echo ' '
@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 '
@echo ' '
html:
"$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
clean:
[ ! -d "$(OUTPUTDIR)" ] || rm -rf "$(OUTPUTDIR)"
regenerate:
"$(PELICAN)" -r "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
serve:
"$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
serve-global:
"$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) -b $(SERVER)
devserver:
"$(PELICAN)" -lr "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
devserver-global:
"$(PELICAN)" -lr "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) -b 0.0.0.0
publish:
"$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(PUBLISHCONF)" $(PELICANOPTS)
rsync -e ssh -av --delete-after /Users/pascal/Documents/craft-letter/output/ craftletter@ssh-craftletter.alwaysdata.net:/home/craftletter/www
ssh:
ssh craftletter@ssh-craftletter.alwaysdata.net
mail:
PYTHONPATH=PWD venv/bin/python ./prepare_email.py $(file)
.PHONY: html help clean regenerate serve serve-global devserver devserver-global publish mail

59
justfile Normal file
View file

@ -0,0 +1,59 @@
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}}
# generate HTML email
mail file:
echo {{file}}
PYTHONPATH=PWD venv/bin/python ./scripts/prepare_email.py {{file}}