Flag queues whose driver filters need Rosetta or are missing

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kfattic
2026-09-16 14:23:31 -05:00
parent cf0241beac
commit 366bd74225
12 changed files with 362 additions and 5 deletions

View File

@@ -103,6 +103,8 @@ final class PrinterStore {
private(set) var defaultPrinter: String?
/// Driver PPD + IPP attributes per queue, for enabling Quick Actions.
private(set) var drivers: [String: DriverContext] = [:]
/// Filter check per queue (Intel-only or missing filters), from the cached PPDs.
private(set) var driverFilters: [String: DriverFilterReport] = [:]
var failure: Failure?
let client = CupsClient()
@@ -201,6 +203,11 @@ final class PrinterStore {
for printer in printers where drivers[printer.name] == nil {
if let context = try? await DriverContext.load(client: client, queue: printer.name) {
drivers[printer.name] = context
if let ppd = context.ppd {
driverFilters[printer.name] = await Task.detached { DriverFilterCheck.check(ppd) }.value
} else {
driverFilters[printer.name] = nil
}
}
}
}