commit fb76ff78ffe64b14cdb01c182c210501ad069e77 from: Benjamin Stürz date: Mon Feb 10 15:23:16 2025 UTC ppa6-print: add -v and print printer information commit - 207f666c3d7cf037442177517c1f9be4086753e5 commit + fb76ff78ffe64b14cdb01c182c210501ad069e77 blob - b9b187c2ce5a5fa21504decfef318f828a0a13f5 blob + 2192435fd61b5e457a083495f038da4950d89e5e --- Cargo.lock +++ Cargo.lock @@ -46,6 +46,15 @@ dependencies = [ "once_cell", "version_check", "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", ] [[package]] @@ -603,6 +612,17 @@ source = "registry+https://github.com/rust-lang/crates checksum = "822c4000301ac390e65995c62207501e3ef800a1fc441df913a5e8e4dc374816" dependencies = [ "num-traits", +] + +[[package]] +name = "clap-verbosity" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7bf75a8e0407a558bd7e8e7919baa352e21fb0c1c7702a63c853f2277c4c63" +dependencies = [ + "clap", + "log", + "serde", ] [[package]] @@ -1089,6 +1109,29 @@ dependencies = [ ] [[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] name = "equivalent" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1590,6 +1633,12 @@ name = "hexf-parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "iced" @@ -2881,9 +2930,12 @@ dependencies = [ "anyhow", "clap", "clap-num", + "clap-verbosity", "cosmic-text", + "env_logger", "image 0.25.5", "itertools 0.14.0", + "log", "open", "ppa6", ] @@ -3137,9 +3189,38 @@ dependencies = [ "getrandom 0.2.15", "libredox", "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] name = "renderdoc-sys" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" blob - 867716caa94b36a848fa267a7d41752729fd7012 blob + 96dea95ed7d82307d30c22533c7b5efe2ab3b0bd --- ppa6-print/Cargo.toml +++ ppa6-print/Cargo.toml @@ -12,3 +12,6 @@ image = "0.25.5" itertools = "0.14.0" open = "5.3.2" ppa6.workspace = true +env_logger = "0.11.6" +clap-verbosity = "2.1.0" +log = "0.4.25" blob - 485ff57e6e2db8bcc9b0f363fe9de846f0aaff9c blob + 440bb5d975d986111bc18f835dc355ea4a65dcd0 --- ppa6-print/src/main.rs +++ ppa6-print/src/main.rs @@ -2,6 +2,7 @@ use std::{io::{Cursor, Read}, path::{Path, PathBuf}}; use anyhow::Result; use clap::Parser; use clap_num::maybe_hex; +use clap_verbosity::Verbosity; use cosmic_text::{Attrs, Buffer, Color, FontSystem, Metrics, Shaping, SwashCache}; use image::{imageops::{dither, ColorMap, FilterType}, DynamicImage, GrayImage, ImageFormat, ImageReader, Luma, RgbImage}; use ppa6::{usb_context, Document, Printer}; @@ -59,6 +60,9 @@ struct Cli { /// Adjust constrast, positive values increase contrast, negative values decrease contrast #[arg(short, long, default_value_t = 0.0)] contrast: f32, + + #[command(flatten)] + verbose: Verbosity, } struct BlackWhiteMap(u8); @@ -182,6 +186,9 @@ fn text(cli: &Cli, data: &[u8]) -> Result { fn main() -> Result<()> { let cli = Cli::parse(); + env_logger::builder() + .filter_level(cli.verbose.log_level_filter()) + .init(); let data = if cli.file == Path::new("-") { let mut data = Vec::new(); @@ -227,6 +234,15 @@ fn main() -> Result<()> { let ctx = usb_context()?; let mut printer = Printer::find(&ctx)?; + log::info!("IP: {}", printer.get_ip()?); + log::info!("Firmware: {}", printer.get_firmware()?); + log::info!("Serial: {}", printer.get_serial()?); + log::info!("Hardware: {}", printer.get_hardware()?); + log::info!("Name: {}", printer.get_name()?); + log::info!("MAC: {:x?}", printer.get_mac()?); + log::info!("Battery: {}%", printer.get_battery()?); + + for i in 0..cli.num { printer.print(&doc, cli.feed && i == (cli.num - 1))?; }