summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: ec0d6a562e666051b23fc14b5912120d62e7acdd (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

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 ?= lua
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

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

archs := x86_64 x86
releases_yaml = $(archs:%=releases.%.yaml)
releases_url := http://nl.alpinelinux.org/alpine/latest-stable/releases
releases_url_suffix = $(@:releases.%.yaml=%/latest-releases.yaml)

all: $(pages) $(static_out)

$(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) $^ > $@.tmp
	mv $@.tmp $@

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

$(releases_yaml):
	curl -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 $(git_atom_url) | $(generate_commits) > $@.tmp
	mv $@.tmp $@

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

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