#!/usr/bin/env bash run_dir=$(pwd) target="output" rm -drf "${target}" rm -f "output.zip" function build() { local doc_dir="$(dirname "${1}")" local main_file="$(basename "${1}")" local job_name="$(basename "${doc_dir}")" echo "|> Building ${job_name}..." cd "${doc_dir}" # Build handout echo "\\def\\argNoSolutions{1}\\input{main.tex}" | \ tectonic \ --outfmt pdf \ --chatter minimal \ - stat=$? if [[ $stat == 0 ]]; then mv texput.pdf "${OUTPUT}/${job_name}.pdf" else rm -f texput.pdf echo "|> Handout build failed" echo "" fi # Build solutions echo "\\def\\argYesSolutions{1}\\input{main.tex}" | \ tectonic \ --outfmt pdf \ --chatter minimal \ - stat=$? if [[ $stat == 0 ]]; then mv texput.pdf "${OUTPUT}/${job_name}.sols.pdf" echo "" else rm -f texput.pdf echo "|> Solution build failed" echo "" fi cd "${run_dir}" } for d in ./Advanced/*/ ; do doc_dir=$(realpath "${d}") OUTPUT="${run_dir}/${target}/Advanced" mkdir -p "${OUTPUT}" build "${doc_dir}/main.tex" done for d in ./Intermediate/*/ ; do doc_dir=$(realpath "${d}") OUTPUT="${run_dir}/${target}/Intermediate" mkdir -p "${OUTPUT}" build "${doc_dir}/main.tex" done cd "${target}" zip -FSr ../output.zip .