#!/bin/bash
# /usr/lib/cups/filter/copies1filter - Fuerza siempre 1 copia en CUPS

# Argumentos estándar de CUPS filter:
# $0: nombre del filtro
# $1: job-id
# $2: usuario
# $3: título
# $4: copias (¡SE IGNORA!)
# $5: opciones
# $6: archivo de entrada (o stdin si vacío)

JOBID="$1"
USER="$2"
TITLE="$3"
COPIES="$4"
COPIES_FORCED=1 # ¡SIEMPRE 1!
OPTIONS="$5"
INPUTFILE="${6:-}"

echo "Job $JOBID ($USER) - Fichero: $INPUTFILE - $TITLE - Forzando $COPIES_FORCED copias (original: $COPIES) - OPCIONES: $OPCIONES" > /tmp/salida_cupsfilter
echo "CONTENT_TYPE=$CONTENT_TYPE" >> /tmp/salida_cupsfilter
# Log para debug (opcional)
logger -t copies1filter "Job $JOBID ($USER): $TITLE - Forzando $COPIES_FORCED copias (original: $COPIES)"

# Detecta siguiente filtro o backend vía cupsfilter (automático)
if [ -z "$INPUTFILE" ]; then
    # stdin → stdout (passthrough con 1 copia)
    # exec cupsfilter -p /etc/cups/ppd/"$PPD_NAME" -m application/vnd.cups-pdf -n "$COPIES_FORCED" -o "$OPTIONS" -
    exec /usr/lib/cups/filter/pdftopdf "$JOBID" "$USER" "$TITLE" "$COPIES_FORCED" "$OPTIONS"
else
    # Detecta tipo por extensión o magic
    case "$INPUTFILE" in
        *.pdf|*.PDF)
            exec /usr/lib/cups/filter/pdftopdf "$JOBID" "$USER" "$TITLE" "$COPIES_FORCED" "$OPTIONS" "$INPUTFILE"
        ;;
        *.ps|*.PS|*.eps|*.EPS)
            exec /usr/lib/cups/filter/pstops "$JOBID" "$USER" "$TITLE" "$COPIES_FORCED" "$OPTIONS" "$INPUTFILE"
        ;;
        *.txt|*.text)
            exec /usr/lib/cups/filter/texttopdf "$JOBID" "$USER" "$TITLE" "$COPIES_FORCED" "$OPTIONS" "$INPUTFILE"
        ;;
        *)
            # Default: asume PDF (más probable)
            # exec /usr/lib/cups/filter/pdftopdf "$JOBID" "$USER" "$TITLE" "$COPIES_FORCED" "$OPTIONS" "$INPUT"
            # archivo → cupsfilter con 1 copia
            # exec cupsfilter -p /etc/cups/ppd/"$PPD_NAME" -m application/vnd.cups-pdf -n "$COPIES_FORCED" -o "$OPTIONS" "$INPUTFILE"
            exec /usr/lib/cups/filter/pdftopdf "$JOBID" "$USER" "$TITLE" "$COPIES_FORCED" "$OPTIONS" "$INPUTFILE"
        ;;
    esac
fi
