16 lines
485 B
TypeScript
16 lines
485 B
TypeScript
import { commandExists, runCommand } from "../commands.js"
|
|
|
|
export const hasCups = () => commandExists("lpstat")
|
|
|
|
export const listPrinters = async () => {
|
|
if (!await hasCups()) return []
|
|
|
|
const result = await runCommand("lpstat", ["-p"], { timeoutMs: 10_000 })
|
|
if (result.code !== 0) return []
|
|
|
|
return result.stdout
|
|
.split(/\r?\n/)
|
|
.map((line) => line.match(/^printer\s+(\S+)/)?.[1])
|
|
.filter((printer): printer is string => Boolean(printer))
|
|
}
|