summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: f22e9ec07af5cb941a0bc834061b7c2673e83235 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
out := _out
md_sources := $(wildcard *.md) $(wildcard [a-z]*/*.md)
pages := $(patsubst %.md,$(out)/%.html, $(md_sources))

static_sources := $(shell find _static -type f)
static_out := $(patsubst _static/%,$(out)/%,$(static_sources))

LUA ?= lua5.3
generate_page = $(LUA) _scripts/generate_page.lua
generate_index = $(LUA) _scripts/generate_index.lua
generate_news = $(LUA) _scripts/generate_latest.lua
generate_releases = $(LUA) _scripts/generate_releases.lua
generate_commits = $(LUA) _scripts/generate_git-commits.lua
generate_atom = $(LUA) _scripts/generate_atom.lua

git_atom_url := https://git.alpinelinux.org/cgit/aports/atom

archs := x86_64 x86 armhf aarch64 ppc64le s390x armv7
releases_yaml = $(archs:%=releases.%.yaml)
releases_url := http://dl-master.alpinelinux.org/alpine/latest-stable/releases
releases_url_suffix = $(@:releases.%.yaml=%/latest-releases.yaml)

all: $(pages) $(static_out) $(out)/atom.xml

$(out)/index.html: releases.yaml git-commits.yaml news.yaml
$(out)/downloads/index.html: releases.yaml
$(out)/posts/index.html: posts/index.yaml

$(out)/%.html: %.md _default.template.html
	mkdir -p $(dir $@)
	$(generate_page) $< $(filter %.yaml,$^) > $@.tmp
	mv $@.tmp $@

$(static_out): $(out)/%: _static/%
	mkdir -p $(dir $@)
	cp $< $@

%/index.yaml: %/*.md
	$(generate_index) $(filter %.md,$^) > $@.tmp
	mv $@.tmp $@

clean:
	rm -f $(pages) $(static_out) \
		$(releases_yaml) releases.yaml \
		git-commits.yaml \
		news.yaml posts/index.yaml \
		$(out)/atom.xml

$(releases_yaml):
	curl -L -J $(releases_url)/$(releases_url_suffix) > $@.tmp
	mv $@.tmp $@

releases.yaml: $(releases_yaml) _scripts/generate_releases.lua
	$(generate_releases) $(filter %.yaml,$^) > $@.tmp && mv $@.tmp $@

update-release:
	rm -f $(releases_yaml) releases.yaml
	$(MAKE)

git-commits.yaml: _scripts/generate_git-commits.lua
	curl -L $(git_atom_url) | $(generate_commits) > $@.tmp
	mv $@.tmp $@

update-git-commits:
	rm -f git-commits.yaml
	$(MAKE)

posts/index.yaml: _scripts/generate_index.lua

news.yaml: posts/index.yaml
	$(generate_news) < $< > $@.tmp
	mv $@.tmp $@

$(out)/atom.xml: news.yaml
	$(generate_atom) _atom.template.xml $< > $@.tmp
	mv $@.tmp $@

DOCKER_IMAGE = alpine-mksite
.PHONY: build
build:
	docker build -t $(DOCKER_IMAGE) .

.PHONY: run-test
run-test:
	docker run -t -p 8000:8000 $(DOCKER_IMAGE)

.PHONY: stop-test
stop-test:
	docker ps | grep '8000->8000' | tr -s " " | cut -f 1 -d " " \
	  | xargs docker rm -f