use std::{env, error::Error};
use brother_ql::{
connection::{KernelConnection, PrinterConnection},
media::Media,
printjob::PrintJobBuilder,
};
use tracing_subscriber::{EnvFilter, field::MakeExt};
fn main() -> Result<(), Box<dyn Error>> {
tracing_subscriber::fmt()
.map_fmt_fields(MakeExt::debug_alt)
.with_env_filter(EnvFilter::new("debug"))
.init();
let mut args = env::args();
let prog = args.next().unwrap();
let Some(img_path) = args.next() else {
println!("Usage: {prog} <image> [device]");
return Ok(());
};
let device_path = args.next().unwrap_or_else(|| "/dev/usb/lp0".into());
let img = image::open(img_path)?;
let job = PrintJobBuilder::new(Media::C62)
.add_label(img)
.build()?;
let mut connection = KernelConnection::open(device_path)?;
connection.print(job)?;
Ok(())
}