#!/usr/bin/env zsh
set -euo pipefail

source ~/bin/script_framework.sh

usage="$(basename $0) [-d DPI] [-f] [-h] [-l] <outfile.pdf> <...infile.jpg|png|...>"

A4H=11.7 # inch
A4W=8.3  # inch
DPI=150

h=${A4H}
w=${A4W}
rotate=0
scalearg=""

while getopts "d:fhlr:" opt; do
  case "${opt}" in
  d) DPI=${OPTARG} ;;
  f) scalearg="^" ;;
  h) fatal "${usage}" ;;
  l)
    h=${A4W}
    w=${A4H}
    ;;
  r) rotate=${OPTARG} ;;
  esac
done

shift $((OPTIND - 1))

outfile=${1:-}
[[ -n $outfile ]] || fatal "${usage}"
shift

exec convert "$@" \
  -compress jpeg \
  -rotate ${rotate} \
  -resize $((w * DPI))x$((h * DPI))${scalearg} \
  -gravity center \
  -extent $((w * DPI))x$((h * DPI)) \
  -units PixelsPerInch \
  -density ${DPI} \
  "${outfile}"

# vim: set ft=sh :