#! /bin/bash main() { flags "$@" install build } flags() { set -e export THEME="${1:-"flat"}" export PAGE_SIZE="${PAGE_SIZE:-A4}" } install() { install_cli install_theme if ! which wkhtmltopdf &> /dev/null; then log installing wkhtmltopdf false sudo apt -y install xfonts-75dpi wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb rm ./wkhtml*.deb fi } install_cli() { if which resume &> /dev/null; then return fi sudo npm install -g resume-cli which resume } install_theme() { if [ -d node_modules/jsonresume-theme-$THEME ]; then return fi npm install jsonresume-theme-$THEME } build() { if ! [ -f ./resume.json ]; then resume init return $? fi resume validate for ext in html ; do resume export resume.$ext --theme $THEME done wkhtmltopdf --page-size $PAGE_SIZE ./resume.html ./resume.pdf } log() { echo "$(date) > $*" >&2 } if [ "$0" == "$BASH_SOURCE" ]; then main "$@" fi