#!/usr/bin/env bash

# Generate a A5 booklet version of a given PDF.

# $1: Input file.

: ${1:?}

bordel="$(
    mktemp -d "${TMPDIR:-/tmp/}$(basename "$0").XXXXXXXXXXXX"
)"

test -d "$bordel" || exit 1

# Number of pages of the input.
nb_pgs="$(
    pdfinfo "$1" | awk '$1 == "Pages:" { print $NF }'
)"
: ${nb_pgs:?}
# Smallest multiple of 4 that is at least nb_pgs.
nb_pgs_ok="$(
    bc <<< "((${nb_pgs} - 0.5) / 4 + 1) * 4"
)"
: ${nb_pgs_ok:?}

pdftops -paper match "$1" "$bordel"/1.ps &&
psbook -s "$nb_pgs_ok" "$bordel"/1.ps "$bordel"/2.ps &&
psnup -2 -PA5 "$bordel"/2.ps "$bordel"/3.ps &&
ps2pdf "$bordel"/3.ps "${1%.pdf}"_booklet.pdf &&
#rm -f 1.ps 2.ps 3.ps &&
echo "$(basename "$0"): All done."

exit 0
