71 lines
1.5 KiB
Makefile
71 lines
1.5 KiB
Makefile
# convert png to eps for embedding in pdf
|
|
.PHONY: eps
|
|
eps: cornbeast.eps
|
|
cornbeast.eps:
|
|
convert assets/cornbeast.png cornbeast.eps
|
|
|
|
# create dot file
|
|
.PHONY: dot
|
|
dot: tmp/dot
|
|
tmp/dot: db/game.rec
|
|
echo "digraph {" > tmp/dot
|
|
recsel -t game db/game.rec \
|
|
| recfmt '{{id}} -> {{text}}|' \
|
|
| sed -e 's/|/\n\n/g' \
|
|
| sed -e '/./{H;$!d;}' -e 'x; s/\n//g; G;' \
|
|
| sed -e 's/}}[^{]*{{/}} {{/g' -e 's/> [^{]* {{/> {{/' \
|
|
| sed -e 's/}}[^{]*/}} /' \
|
|
| sed -e 's/[^}]$$//' \
|
|
| sed -e 's/^\([0-9]*\) -> [^{].*/\1/' \
|
|
| sed -e 's/}} {{/}}, {{/g' \
|
|
>> tmp/dot
|
|
echo "}" >> $@
|
|
|
|
# create data object
|
|
.PHONY: data
|
|
data: tmp/data
|
|
tmp/data: db/game.rec
|
|
echo "{" `just _map` "}" \
|
|
| sed -e 's/, }/ }/' \
|
|
> $@
|
|
|
|
# create the graph
|
|
.PHONY: graph
|
|
graph: out/graph.png
|
|
out/graph.png: tmp/data tmp/dot
|
|
mustache tmp/data tmp/dot \
|
|
| dot -Tpng > $@
|
|
|
|
# create the ms template file
|
|
.PHONY: ms
|
|
ms: tmp/story.ms
|
|
tmp/story.ms: tmp/data templates/story.ms.template
|
|
recsel -t game db/game.rec \
|
|
| rec2csv \
|
|
| csvjson \
|
|
| jq '. | { data: . }' \
|
|
| mustache - templates/story.ms.template \
|
|
> $@
|
|
|
|
|
|
# make the pdf output
|
|
.PHONY: pdf
|
|
pdf: out/story.pdf
|
|
out/story.pdf: tmp/story.ms
|
|
mustache tmp/data tmp/story.ms \
|
|
| groff -ms -Tps -dpaper=a5 -P-pa5 \
|
|
| ps2pdfwr - $@
|
|
|
|
# make the ascii output
|
|
.PHONY: ascii
|
|
ascii: out/story.txt
|
|
out/story.txt: tmp/data tmp/story.ms
|
|
mustache tmp/data tmp/story.ms \
|
|
| groff -ms -Tascii \
|
|
| sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" \
|
|
> $@
|
|
|
|
# generate u-ctags
|
|
tags: db/game.rec
|
|
ctags --options=./lib/game.ctags db/game.rec
|