From fa9902577881cc50f7c0d2fdbbea735bccc08a8a Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Thu, 25 Jan 2024 15:49:02 +0000 Subject: [PATCH] Update `run` tasks --- run | 109 ++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 48 deletions(-) diff --git a/run b/run index f6f4c7a..a05367c 100755 --- a/run +++ b/run @@ -1,9 +1,11 @@ #!/usr/bin/env bash -set -e +set -o errexit +set -o nounset +set -o pipefail PDF_FILENAME=slides.pdf -RST_FILENAME=slides.rst +RST_FILENAME="${RST_FILENAME:-slides.rst}" THUMBNAIL_FILENAME=thumbnail.jpg function clean { @@ -15,6 +17,60 @@ function clean { -delete } +function generate { + generate:pdf "${@}" +} + +function generate:pdf { + if [ "${1}" == "" ]; then + echo "Usage: ./${0##*/} ${FUNCNAME[0]} " + exit 1 + fi + + DIRECTORY_NAME=$1 + shift 1 + pushd "src/${DIRECTORY_NAME}" + + rst2pdf "${RST_FILENAME}" \ + --break-level 1 \ + -e preprocess \ + --fit-background-mode scale \ + --font-path ../fonts \ + --output "../../dist/${DIRECTORY_NAME}.pdf" \ + --stylesheets ../styles/style-light,tango \ + "${@}" + + popd + + tree dist +} + +# Generate JPG thumbnails of each slide in a presentation. +function generate:thumbnail { + if [ "${1}" == "" ]; then + echo "Usage: ./${0##*/} ${FUNCNAME[0]} " + exit 1 + fi + + if [ ! -d "src/${1}" ]; then + echo "${1} not found" + exit 2 + fi + + generate:pdf "${1}" + + mkdir -p "dist/${1}" + + gs \ + -dBATCH \ + -dDownScaleFactor=3 \ + -dNOPAUSE \ + -r600 \ + -sDEVICE=jpeg \ + -sOutputFile="dist/${1}/%d.jpg" \ + "dist/${1}.pdf" +} + function help { printf "%s [args]\n\nTasks:\n" "${0}" @@ -36,58 +92,15 @@ function new { fi mkdir -vp "src/${1}" + touch "src/${1}/slides.rst" } -function pdf:generate { - DIRECTORY_NAME=$1 - shift 1 - pushd "src/${DIRECTORY_NAME}" - - rst2pdf "${RST_FILENAME}" \ - --break-level 1 \ - -e preprocess \ - --fit-background-mode scale \ - --font-path ../fonts \ - --output "../../dist/${DIRECTORY_NAME}.pdf" \ - --stylesheets ../styles/style-light,vs \ - "${@}" - - popd - tree dist -} - -function pdf:present { +function present { TALK_PATH=$1 shift 1 - pdfpc "${@}" "dist/${TALK_PATH}.pdf" --switch-screens -} - -# Generate JPG thumbnails of each slide in a presentation. -function thumbnails:generate { - if [ "${1}" == "" ]; then - echo "Usage: ./${0##*/} ${FUNCNAME[0]} " - exit 1 - fi - - if [ ! -d "src/${1}" ]; then - echo "${1} not found" - exit 2 - fi - - pdf:generate "${1}" - - mkdir -p "dist/${1}" - - gs \ - -dBATCH \ - -dDownScaleFactor=3 \ - -dNOPAUSE \ - -r600 \ - -sDEVICE=jpeg \ - -sOutputFile="dist/${1}/%d.jpg" \ - "dist/${1}.pdf" + pdfpc "${@}" "dist/${TALK_PATH}.pdf" } TIMEFORMAT=$'\nTask completed in %3lR'