69 lines
1.1 KiB
Bash
69 lines
1.1 KiB
Bash
#! /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
|