From d04d523bdf8e0588289b7f09fe3bc9b0dc8ac817 Mon Sep 17 00:00:00 2001 From: Pascal Le Merrer Date: Fri, 16 Jan 2026 17:19:41 +0100 Subject: [PATCH] Replace Make with Just --- Makefile | 79 -------------------- justfile | 59 +++++++++++++++ prepare_email.py => scripts/prepare_email.py | 0 3 files changed, 59 insertions(+), 79 deletions(-) delete mode 100644 Makefile create mode 100644 justfile rename prepare_email.py => scripts/prepare_email.py (100%) diff --git a/Makefile b/Makefile deleted file mode 100644 index 31db304..0000000 --- a/Makefile +++ /dev/null @@ -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 diff --git a/justfile b/justfile new file mode 100644 index 0000000..797be8b --- /dev/null +++ b/justfile @@ -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}} + diff --git a/prepare_email.py b/scripts/prepare_email.py similarity index 100% rename from prepare_email.py rename to scripts/prepare_email.py