Add & build archive

This commit is contained in:
2025-10-16 20:56:22 +02:00
parent b900babea2
commit 6135d1808c
267 changed files with 950 additions and 24 deletions

View File

@@ -1,40 +1,52 @@
ifdef CHORDPRO_PIPELINE
CHORDPRO_CMD = chordpro
else
CHORDPRO_CMD = docker run -ti --rm --env HOME=$(HOME) --env USER=$(USER) --workdir $(shell pwd) --volume $(HOME):$(HOME) chordpro/chordpro:latest chordpro --config=chordpro.json
CHORDPRO_CMD = docker run -ti --rm \
--env HOME=$(HOME) --env USER=$(USER) \
--workdir $(shell pwd) \
--volume $(HOME):$(HOME) \
chordpro/chordpro:latest chordpro --config=chordpro.json
endif
SRC_DIR := $(wildcard content/*)
SRC_EXTENSION := .cho
CURRENT_DIR := content/current
ARCHIVE_DIR := content/archive
SONG_CHO := $(foreach dir,$(SRC_DIR),$(wildcard $(dir)/*$(SRC_EXTENSION)))
SONG_PDF := $(patsubst %$(SRC_EXTENSION),%.pdf,$(SONG_CHO))
SONG_HTML := $(patsubst %$(SRC_EXTENSION),%.html,$(SONG_CHO))
# Find all .cho files in both current and archive
SONG_CHO := $(shell find $(CURRENT_DIR) $(ARCHIVE_DIR) -type f -name "*$(SRC_EXTENSION)")
SONG_PDF := $(SONG_CHO:$(SRC_EXTENSION)=.pdf)
SONG_HTML := $(SONG_CHO:$(SRC_EXTENSION)=.html)
# Songbook only includes current songs (sorted alphabetically)
CURRENT_CHO := $(shell find $(CURRENT_DIR) -type f -name "*$(SRC_EXTENSION)" | sort)
CURRENT_PDF := $(CURRENT_CHO:$(SRC_EXTENSION)=.pdf)
SONGBOOK := content/songbook.pdf
.DEFAULT_GOAL := pdf
%.pdf: %$(SRC_EXTENSION)
# Pattern rules that work for nested directories
content/%.pdf: content/%$(SRC_EXTENSION)
@echo "Building PDF: $@"
$(CHORDPRO_CMD) -o $@ $<
%.html: %$(SRC_EXTENSION)
content/%.html: content/%$(SRC_EXTENSION)
@echo "Building HTML: $@"
$(CHORDPRO_CMD) -o $@ $<
# Aggregate targets
all: pdf html songbook
$(SONGBOOK): $(SONG_PDF)
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$@ $^
.PHONY: html
html: $(SONG_HTML)
.PHONY: pdf
pdf: $(SONG_PDF)
.PHONY: songbook
songbook: pdf
$(MAKE) $(SONGBOOK)
html: $(SONG_HTML)
songbook: $(SONGBOOK)
# Songbook combines alphabetically sorted PDFs
$(SONGBOOK): $(CURRENT_PDF)
@echo "Creating songbook (alphabetically sorted)..."
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$@ $(CURRENT_PDF)
.PHONY: clean
clean:
rm -f $(SONG_PDF) $(SONG_HTML) $(SONGBOOK)