feat/12-printer-enum
milestone/m3-printing
CUPS enumeration via lpstat -e/-p/-d + lpoptions -p/-l + PPD *Key id/Human: enrichment.
lpstat -e
-p
-d
lpoptions -p
-l
*Key id/Human:
Printer
PrinterStatus
PrinterTray
PrinterPaperSize
PrinterMediaType
PrinterCapabilities
PrintOptions
PrintPropertiesResult
CupsParsers
CupsService
/usr/bin/lpstat
lpoptions
ProcessManager.runCaptured
binaryDir
ppdDir
detectMediaTypeKey
detectDriverColorBypass
Tests: CupsParsersTests — 8 Swift Testing suites on real Epson/Canon output.
CupsParsersTests
Closes #12.
Generated with Devin
- Printer/PrinterStatus/PrinterTray/PrinterPaperSize/PrinterMediaType/ PrinterCapabilities/PrintOptions/PrintPropertiesResult models (docs/10 shared print types). - CupsParsers: lpstat -e/-p/-d, lpoptions -p (quoted printer-info), lpoptions -l Key/Label listings, PPD *Key id/Human: enrichment with locale-qualified key support. - detectMediaTypeKey (CNIJMediaType > EPIJ_Medi > StpMediaType > MediaType) and detectDriverColorBypass (Canon Intent2/Intent, Epson CCor/CMat, Gutenprint, generic, EpsonColorMode) — docs/11 layer 4. - CupsService over ProcessManager.runCaptured with injectable binaryDir/ppdDir; empty lpstat output is success. - ProcessID entries for lpstat/lpoptions/lp. Core tests: 8 parser suites on recorded Epson/Canon fixtures. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
No dependencies set.
The note is not visible to the blocked user.
CUPS enumeration via
lpstat -e/-p/-d+lpoptions -p/-l+ PPD*Key id/Human:enrichment.Printer,PrinterStatus,PrinterTray,PrinterPaperSize,PrinterMediaType,PrinterCapabilities,PrintOptions,PrintPropertiesResult(docs/10).CupsParsers— testable on recorded fixtures, no live CUPS.CupsServicespawns/usr/bin/lpstat/lpoptionsviaProcessManager.runCaptured(injectablebinaryDir/ppdDirfor tests). Empty destination list = success.detectMediaTypeKey/detectDriverColorBypasstables (docs/11 layer ④).Tests:
CupsParsersTests— 8 Swift Testing suites on real Epson/Canon output.Closes #12.
Generated with Devin