Commit Diff


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<GrayImage> {
 
 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))?;
 	}