2026-02-03 13:46:49 +01:00
|
|
|
# Makefile for building Brevet card PDF in Docker
|
|
|
|
|
|
|
|
|
|
IMAGE_NAME := brevetcard-builder
|
2026-02-03 14:47:56 +01:00
|
|
|
TEX_FILE_PERSONALIZED := brevetkarte-personalized.tex
|
2026-02-28 11:15:07 +01:00
|
|
|
TEX_FILE_BACK := brevetkarte-rueckseite.tex
|
2026-02-03 14:47:56 +01:00
|
|
|
PDF_FILE_PERSONALIZED := brevetkarte-personalized.pdf
|
2026-02-28 11:15:07 +01:00
|
|
|
PDF_FILE_BACK := brevetkarte-rueckseite.pdf
|
2026-02-03 14:47:56 +01:00
|
|
|
CSV_FILE := Export Brevetkarte.csv
|
2026-02-03 13:46:49 +01:00
|
|
|
|
2026-02-28 11:15:07 +01:00
|
|
|
.PHONY: all build clean build-image build-back generate build-personalized run shell help
|
2026-02-03 13:46:49 +01:00
|
|
|
|
|
|
|
|
# Default target
|
2026-02-28 11:15:07 +01:00
|
|
|
all: build-personalized
|
2026-02-03 13:46:49 +01:00
|
|
|
|
|
|
|
|
# Build Docker image
|
|
|
|
|
build-image:
|
|
|
|
|
@echo "Building Docker image..."
|
|
|
|
|
docker build -t $(IMAGE_NAME) .
|
|
|
|
|
|
2026-02-28 11:15:07 +01:00
|
|
|
# Compile back side PDF (after generate)
|
2026-02-28 10:43:57 +01:00
|
|
|
build-back: build-image
|
2026-02-03 13:46:49 +01:00
|
|
|
@echo "Compiling back side LaTeX to PDF..."
|
|
|
|
|
docker run --rm \
|
|
|
|
|
-v $(PWD):/workspace \
|
|
|
|
|
$(IMAGE_NAME) \
|
|
|
|
|
pdflatex -interaction=nonstopmode $(TEX_FILE_BACK)
|
|
|
|
|
@echo "PDF generated: $(PDF_FILE_BACK)"
|
|
|
|
|
|
2026-02-28 10:43:57 +01:00
|
|
|
# Generate all tex files from CSV + event.yml
|
|
|
|
|
generate:
|
|
|
|
|
@echo "Generating cards from $(CSV_FILE) + event.yml..."
|
2026-02-03 14:47:56 +01:00
|
|
|
@if [ ! -f "$(CSV_FILE)" ]; then \
|
|
|
|
|
echo "Error: $(CSV_FILE) not found!"; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
python3 generate_cards.py
|
|
|
|
|
|
2026-02-28 10:43:57 +01:00
|
|
|
# Build personalized front + event back side PDFs
|
|
|
|
|
build-personalized: generate build-image
|
|
|
|
|
@echo "Compiling personalized front side to PDF..."
|
2026-02-03 14:47:56 +01:00
|
|
|
docker run --rm \
|
|
|
|
|
-v $(PWD):/workspace \
|
|
|
|
|
$(IMAGE_NAME) \
|
|
|
|
|
pdflatex -interaction=nonstopmode $(TEX_FILE_PERSONALIZED)
|
|
|
|
|
@echo "PDF generated: $(PDF_FILE_PERSONALIZED)"
|
2026-02-28 10:43:57 +01:00
|
|
|
@echo "Compiling back side to PDF..."
|
|
|
|
|
docker run --rm \
|
|
|
|
|
-v $(PWD):/workspace \
|
|
|
|
|
$(IMAGE_NAME) \
|
|
|
|
|
pdflatex -interaction=nonstopmode $(TEX_FILE_BACK)
|
|
|
|
|
@echo "PDF generated: $(PDF_FILE_BACK)"
|
2026-02-03 14:47:56 +01:00
|
|
|
|
2026-02-03 13:46:49 +01:00
|
|
|
# Run container interactively
|
|
|
|
|
run:
|
|
|
|
|
docker run --rm -it \
|
|
|
|
|
-v $(PWD):/workspace \
|
|
|
|
|
$(IMAGE_NAME) \
|
|
|
|
|
/bin/bash
|
|
|
|
|
|
|
|
|
|
# Open shell in container for debugging
|
|
|
|
|
shell:
|
|
|
|
|
docker run --rm -it \
|
|
|
|
|
-v $(PWD):/workspace \
|
|
|
|
|
--entrypoint /bin/bash \
|
|
|
|
|
$(IMAGE_NAME)
|
|
|
|
|
|
|
|
|
|
# Clean generated files
|
|
|
|
|
clean:
|
|
|
|
|
@echo "Cleaning generated files..."
|
|
|
|
|
rm -f *.aux *.log *.out *.toc *.pdf
|
|
|
|
|
|
|
|
|
|
# Clean everything including Docker image
|
|
|
|
|
clean-all: clean
|
|
|
|
|
@echo "Removing Docker image..."
|
|
|
|
|
docker rmi $(IMAGE_NAME) 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
# Rebuild from scratch
|
2026-02-28 11:15:07 +01:00
|
|
|
rebuild: clean-all build-personalized
|
2026-02-03 13:46:49 +01:00
|
|
|
|
|
|
|
|
# Show help
|
|
|
|
|
help:
|
|
|
|
|
@echo "Brevet Card PDF Builder"
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Available targets:"
|
2026-02-28 11:15:07 +01:00
|
|
|
@echo " make - Generate and compile front + back side PDFs (default)"
|
2026-02-28 10:43:57 +01:00
|
|
|
@echo " make build-image - Build Docker image only"
|
|
|
|
|
@echo " make generate - Generate tex files from CSV + event.yml"
|
|
|
|
|
@echo " make build-personalized - Generate and compile front + back side PDFs"
|
2026-02-28 11:15:07 +01:00
|
|
|
@echo " make build-back - Compile back side PDF only (after generate)"
|
2026-02-28 10:43:57 +01:00
|
|
|
@echo " make shell - Open interactive shell in container"
|
|
|
|
|
@echo " make clean - Remove generated files (aux, log, pdf)"
|
|
|
|
|
@echo " make clean-all - Remove all files and Docker image"
|
|
|
|
|
@echo " make rebuild - Clean everything and rebuild"
|
|
|
|
|
@echo " make help - Show this help message"
|