diff options
Diffstat (limited to 'build.sh')
-rwxr-xr-x | build.sh | 102 |
1 files changed, 99 insertions, 3 deletions
@@ -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 <tobyv@tobyvin.dev> + + $SCRIPT + Builds resume and cover letter. + + USAGE: + $SCRIPT [OPTIONS...] <COMPANY> <ADDRESS> -- [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 |