Files
static-site-pipeline/build.sh
2023-10-01 16:55:13 +01:00

51 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
rm -rf public
mkdir public || exit 1
DOCKERUSER="$(id -u):$(id -g)"
export DOCKERUSER
IMAGES="$(pwd)/images"
export IMAGES
PDFS="$(pwd)/pdfs"
export PDFS
HUGO="$(pwd)/hugo"
export HUGO
OUTPUT="$(pwd)/public"
export OUTPUT
docker build docker/hadolint -t build-hadolint || exit 1
docker run --user "$(id -u):$(id -g)" -v "$(pwd):/work" build-hadolint sh -c "/build.sh" || exit 1
docker build docker/shellcheck -t build-shellcheck || exit 1
docker run --user "$(id -u):$(id -g)" -v "$(pwd):/work" build-shellcheck sh -c "/build.sh /work" || exit 1
docker build docker/latex -t build-latex || exit 1
docker build docker/pictures -t build-pictures || exit 1
docker build docker/hugo -t build-hugo || exit 1
echo Building thumbnails.
docker run --user "$(id -u):$(id -g)" -v "$IMAGES:/output" build-pictures sh -c "/build.sh /output" || exit 1
while read -r d; do
mkdir -p "$HUGO/$d" || exit 1
DESIRED_LOCATION=$(basename "$d")
DEST=$(dirname "$d")
cp -r "$IMAGES/$DESIRED_LOCATION" "$HUGO/$DEST"
done <"$IMAGES/image-targets.txt"
echo Building LaTeX.
docker run --user "$(id -u):$(id -g)" -v "$PDFS:/inputs" build-latex sh -c "/build.sh /inputs" || exit 1
while read -r texfile; do
DIR="$HUGO"/$(dirname "$texfile")
TEXFILE_BASE=$(basename "$texfile")
PDFFILE=$(basename "$texfile" .tex).pdf
mkdir -p "$DIR"
cp "$PDFS/$TEXFILE_BASE" "$DIR/"
cp "$PDFS/$PDFFILE" "$DIR/"
done <"$PDFS/pdf-targets.txt"
echo Building site.
docker run --user "$(id -u):$(id -g)" -v "$HUGO:/hugo" -v "$OUTPUT:/output" build-hugo sh -c "/build.sh /hugo /output" || exit 1
echo Done.