#!/bin/bash
# CUPS filter for TA 3505ci - injects department code into PostScript stream.
# Uses bash+awk only, no Python dependency.

if [ $# -lt 5 ]; then
    echo "Usage: kyofilter job-id user title copies options [file]" >&2
    exit 1
fi

OPTIONS="${5:-}"
INFILE="${6:-}"

# Extract department code: KmManagment=MGxxxxx -> xxxxx
CODE=""
for OPT in $OPTIONS; do
    if [[ "$OPT" =~ ^KmManagment=MG([0-9]+)$ ]]; then
        CODE="${BASH_REMATCH[1]}"
        break
    fi
done

# Pure passthrough when no code selected
if [ -z "$CODE" ]; then
    if [ -n "$INFILE" ]; then
        cat "$INFILE"
    else
        cat
    fi
    exit 0
fi

# Inject PostScript command before %%EndSetup (fallback: before %%Page:)
INJECT="($CODE) statusdict /setmanagementnumber get exec"
INPUT="${INFILE:--}"

awk -v inject="$INJECT" '
BEGIN { injected = 0 }
!injected && /^%%EndSetup/ {
    print inject
    injected = 1
}
!injected && /^%%Page:/ {
    print inject
    injected = 1
}
{ print }
END { if (!injected) print "kyofilter: WARNING: no injection point found" > "/dev/stderr" }
' "$INPUT"
