zines/XMPP - 25 years/build.sh

45 lines
1.3 KiB
Shell
Executable file

#! /usr/bin/env bash
basedir="$(dirname "$0")"
basedir="$(realpath "$basedir")"
cd "$basedir"
name="$(basename "$(pwd)")"
# Check if we want to run against a certain translation
if [ $# -lt 1 ]; then
echo "Please specify the language you want to build (eg. fr)"
exit 1
fi
TARGETLANG="$1"
SOURCEFILE="main.${TARGETLANG}.typ"
TARGETFILE="$name".$TARGETLANG.pdf
TARGETFILEBOOK="$name".${TARGETLANG}-book.pdf
if ! typst compile --root .. ./"$SOURCEFILE" ./"$TARGETFILE"; then
echo "Failed to compile "$name"/"$SOURCEFILE". Please fix errors and run me again."
exit 1
fi
echo "Compiled read mode. Now compiling print mode."
if ! command -v pdfbook2; then
echo "ERROR: pdfbook2 not installed. Not compiling print mode."
exit 1
fi
t="$(mktemp --suffix=.pdf)"
typst compile --input format=booklet --root .. ./"$SOURCEFILE" "$t"
# Need to be in the folder there for it to work, otherwise it
# tries to rename from current partition to /tmp which of course fails
parent="$(dirname "$t")"
newFileName="$(basename "$t" .pdf)-book.pdf"
newFile="$parent"/"$newFileName"
cd "$parent"
pdfbook2 --paper=a4paper "$t" --no-crop --outer-margin=0 --inner-margin=0 --top-margin=0 --bottom-margin=0
cd "$basedir"
cp "$newFile" "$TARGETFILEBOOK"
echo "Booklet available in $TARGETFILEBOOK"