#!/bin/sh src="${SRC:-src}" dest="${DEST:-public_html}" template="${TEMPLATE:-index.html.in}" styles="${STYLESHEET:-stylesheet.css}" filters="${FILTERS:-filters.sed}" title="${TITLE:-rnkn}" baseurl="${BASEURL:-https://sdf.org/~rnkn}" script="$0" buildlist=$(mktemp) buildfiles="$buildlist" trap 'rm -rf $buildfiles' EXIT get() { find "$1" -type f -name "*.$2" } txt2html() { while read -r file; do tmphtml="${file%.*}.html" sed -Ef "$filters" < "$file" > "$tmphtml" buildfiles="$tmphtml $buildfiles" done } csv2txt() { while read -r file; do tmptxt="${file%.*}.txt" column -ts, < "$file" > "$tmptxt" buildfiles="$tmptxt $buildfiles" done } build() { while read -r file; do desthtml="$dest/$(basename "$file")" m4 -D__TITLE__="$title" \ -D__BASEURL__="$baseurl" \ -D__FILE__="$file" \ < "$template" > "$desthtml" done } sitemap() { sitemap="$src/all.txt" rm -f "$sitemap" touch "$sitemap" while read -r file; do file="$(basename "$file")" echo "[[${file%.txt}]]" >> "$sitemap" done } mkdir -p "$dest" rm -rf "$dest"/* get src csv > "$buildlist" csv2txt < "$buildlist" get src txt | sort > "$buildlist" sitemap < "$buildlist" get src txt > "$buildlist" txt2html < "$buildlist" get src html > "$buildlist" build < "$buildlist" cp "$styles" "$dest" cp "$script" "$dest/$script.txt"