#!/bin/sh
#
# a2ps-lpr-wrapper - lp/lpr wrapper script for GNU a2ps

set -e

TEMP=$(getopt -o d: -n 'a2ps-lpr-wrapper' -- "$@")
if [ $? -ne 0 ]; then echo 'Error parsing options' >&2; fi
eval set -- "$TEMP"
unset TEMP

printer=""
while true; do
  case "$1" in
    -d) printer=$2; shift 2 ;;
    --) shift; break ;;
     *) echo "Internal error" >&2; exit 1 ;;
  esac
done

# If lp (from CUPS) exists, just use it.
if command -pv lp > /dev/null; then
  printer_opt=-d
  command="lp"
elif command -pv lpr >/dev/null; then
  # In case lp is not available, then fall back to lpr.
  printer_opt=-P
  command="lpr"
elif command -pv rlpr >/dev/null; then
  # In case lpr is not available, then fall back to rlpr.
  printer_opt=-P
  command="rlpr"
else
  # If none of lp, lpr and rlpr is available, then fail
  echo "$0: no program found to print files"
  exit 1
fi

# Run the command
opts=""
if [ "$printer" != "" ]; then
   opts="$printer_opt $printer"
fi
command -p "$command" $opts "$@"
