mirror of
https://github.com/RGBCube/superfreq
synced 2025-07-29 01:47:44 +00:00
watt: turn into a library
This commit is contained in:
parent
3c82679ada
commit
a341d08c45
11 changed files with 115 additions and 84 deletions
57
watt/main.rs
Normal file
57
watt/main.rs
Normal file
|
@ -0,0 +1,57 @@
|
|||
use std::{
|
||||
fmt::Write as _,
|
||||
io,
|
||||
io::Write as _,
|
||||
process,
|
||||
};
|
||||
|
||||
use yansi::Paint as _;
|
||||
|
||||
fn main() {
|
||||
let Err(error) = watt::main() else {
|
||||
return;
|
||||
};
|
||||
|
||||
let mut err = io::stderr();
|
||||
|
||||
let mut message = String::new();
|
||||
let mut chain = error.chain().rev().peekable();
|
||||
|
||||
while let Some(error) = chain.next() {
|
||||
let _ = write!(
|
||||
err,
|
||||
"{header} ",
|
||||
header = if chain.peek().is_none() {
|
||||
"error:"
|
||||
} else {
|
||||
"cause:"
|
||||
}
|
||||
.red()
|
||||
.bold(),
|
||||
);
|
||||
|
||||
String::clear(&mut message);
|
||||
let _ = write!(message, "{error}");
|
||||
|
||||
let mut chars = message.char_indices();
|
||||
|
||||
let _ = match (chars.next(), chars.next()) {
|
||||
(Some((_, first)), Some((second_start, second)))
|
||||
if second.is_lowercase() =>
|
||||
{
|
||||
writeln!(
|
||||
err,
|
||||
"{first_lowercase}{rest}",
|
||||
first_lowercase = first.to_lowercase(),
|
||||
rest = &message[second_start..],
|
||||
)
|
||||
},
|
||||
|
||||
_ => {
|
||||
writeln!(err, "{message}")
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
process::exit(1);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue