From 2aec1184e3ac8a7a560ccc81539243ed43aaae57 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Wed, 23 Aug 2023 19:16:21 -0500 Subject: build: improve build script and combined pdf --- .build.yml | 19 ++++++++--- build-generic.sh | 71 -------------------------------------- build.sh | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 113 insertions(+), 79 deletions(-) delete mode 100755 build-generic.sh diff --git a/.build.yml b/.build.yml index 1878e56..95eba0c 100644 --- a/.build.yml +++ b/.build.yml @@ -3,20 +3,29 @@ oauth: git.sr.ht/OBJECTS:RW git.sr.ht/REPOSITORIES:RO git.sr.ht/PROFILE:RO packages: - texlive-luatex - texmf-dist-most + - poppler-utils - hut sources: - https://git.sr.ht/~tobyvin/resume artifacts: - resume/src/resume.pdf + - resume/src/cover_letter.pdf + - resume/src/cover_letter-resume.pdf - resume/src/cover_letters.tar.gz tasks: - - build: ./resume/build.sh - - package: | + - build: | cd resume - (cd src && tar -czvf cover_letters.tar.gz */*.pdf) + ./build.sh --all git describe --exact-match HEAD > pkgver || complete-build - - publish: | + - package: | cd resume + + (cd src && tar -czvf cover_letters.tar.gz */*.pdf) cp src/resume.pdf resume-$( - - $SCRIPT - Builds generic cover letter using the provided company name and address. - - USAGE: - $SCRIPT
[OPTION ...] - - OPTIONS: - -o, --open Open PDF after building - -h, --help Show this help. - - EXAMPLES: - $SCRIPT "Chuck's Clucks" "Cluckville, KY" --open - EOF -} - -open=false -while true; do - case "$1" in - -h | --help) - help - exit 0 - ;; - -o | --open) - open=true - shift - ;; - --) - shift - break - ;; - *) - exit 1 - ;; - esac -done - -if [ "$#" -eq 0 ]; then - echo 'Error: Missing name and address' - help - exit 1 -fi - -name=$1 -address=$2 -shift 2 - -latexmk src/generic/cover_letter.tex -usepretex="\def\companyname{$name}\def\companyaddress{$address}" -g -jobname=custom_cover_letter "$@" -cp src/generic/custom_cover_letter.pdf src/cover_letter.pdf - -if $open; then - xdg-open src/cover_letter.pdf -fi diff --git a/build.sh b/build.sh index b1a5021..99c4b05 100755 --- a/build.sh +++ b/build.sh @@ -2,8 +2,104 @@ CDPATH='' cd -- "$(dirname -- "$0")" || exit -latexmk "src/resume.tex" +SCRIPT="$(basename "$0")" + +long='help,open,all,name:,address:' +short='hoAn:a:' + +if ! opts="$(getopt -o $short -l $long -n "$SCRIPT" -- "$@")"; then + exit 1 +fi + +eval set -- "$opts" + +help() { + cat <<-EOF + $SCRIPT + Toby Vincent + + $SCRIPT + Builds resume and cover letter. + + USAGE: + $SCRIPT [OPTIONS...]
-- [LATEXMK_OPTS...] + + OPTIONS: + -A, --all Build all cover letters + -n, --name Specify a company name to use for generic cover letter + -a, --address Specify a company address to use for generic cover letter + -o, --open Open combined PDF after building + -h, --help Show this help. -for f in ./src/*/cover_letter.tex; do - latexmk "$f" + EXAMPLES: + $SCRIPT -n "Chuck's Clucks" -a "Cluckville, KY" --open + EOF +} + +error() { + printf 'Error: %s' "$1" 1>&2 + help + exit 1 +} + +open=false +all=false +while true; do + case "$1" in + -h | --help) + help + exit 0 + ;; + -o | --open) + open=true + shift + ;; + -A | --all) + all=true + shift + ;; + -n | --name) + name=$2 + shift 2 + ;; + -a | --address) + address=$2 + shift 2 + ;; + --) + shift + break + ;; + *) + exit 1 + ;; + esac done + +if $all; then + for f in src/*/cover_letter.tex; do + latexmk "$f" + done +fi + +if [ -n "$name" ]; then + if [ -n "$address" ]; then + company=generic + set -- "$@" -usepretex="\def\companyname{$name}\def\companyaddress{$address}" -g + elif [ -e "src/$name/cover_letter.tex" ]; then + company="$name" + else + error "Directory $name not found" + fi +else + company=generic + set -- "$@" -g +fi + +latexmk "src/resume.tex" +latexmk "src/$company/cover_letter.tex" -cd- -outdir="src" -auxdir="src" "$@" +pdfunite src/cover_letter.pdf src/resume.pdf src/cover_letter-resume.pdf + +if $open; then + xdg-open src/cover_letter-resume.pdf +fi -- cgit v1.2.3-70-g09d2