#!/usr/bin/env bash
# cetak-file.sh -- pipeline cetak mini ala CUPS: teks -> filter -> backend berkas
# Pemakaian: bash cetak-file.sh <berkas-teks> [nama-printer]
# Hasil    : <berkas-teks>.prn berisi "halaman" siap kirim ke printer.
# Tanpa argumen: demo singkat pada berkas sementara.

if [ $# -eq 0 ]; then
    tmp=$(mktemp)
    printf 'halo dari filter cetak\n' > "$tmp"
    bash "$0" "$tmp" LaserKantor > /dev/null
    rm -f "$tmp" "$tmp.prn"
    echo "demo selesai di direktori sementara"
    exit 0
fi

berkas=$1
printer=${2:-LaserKantor}
hasil="$berkas.prn"

if [ ! -f "$berkas" ]; then
    echo "gagal: berkas $berkas tidak ditemukan"
    exit 0
fi

awk -v tugas="$berkas" -v printer="$printer" '
    BEGIN {
        garis = "+" substr("----------------------------------------------------", 1, 50) "+"
        print garis
        printf "| %-48s |\n", toupper(printer) " -- tugas: " tugas
        print garis
    }
    {
        printf "%3d  %s\n", NR, $0
    }
    END {
        print garis
        printf "| %-48s |\n", "halaman 1, " NR " baris"
        print garis
    }
' "$berkas" > "$hasil"

echo "backend: menulis ke $hasil"
