summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorNamilskyy <alive6863@gmail.com>2025-11-20 21:42:12 +0300
committerNamilskyy <alive6863@gmail.com>2025-11-22 22:52:44 +0300
commita4ab1c48ab4238d9eba614e20cc0cfbd214ad2d5 (patch)
tree5605dedcbd8cd635fb65420bb24c24b37a4dfbd3 /src/main.rs
parent749ef303695d1633bac01e2e9ddbf02a54bfdfda (diff)
Added colours ASCII art support, added debug mode.
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 1cc3959..308e6db 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -61,7 +61,8 @@ enum Commands {
Tomorrow,
RebuildCache,
CheckCfg,
- Credits
+ Credits,
+ DebugOutput
}
/// Micro config-validator, easily you can just `wfetch fetch` and see the error
@@ -210,7 +211,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Some(Commands::Today) => {
// to much vars
let data: WeatherData = parse_cached()?;
- let art_string = prepare_art(&data)?;
+ let art_string = prepare_art(&data, false)?;
let table_lines = generate_weather_table_content(&data);
let art_lines: Vec<&str> = art_string.lines().collect();
@@ -231,6 +232,25 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("Tomorrow weather command");
Ok(())
}
+ Some(Commands::DebugOutput) => {
+ let data: WeatherData = parse_cached()?;
+ let art_string = prepare_art(&data, true)?;
+ let table_lines = generate_weather_table_content(&data);
+
+ let art_lines: Vec<&str> = art_string.lines().collect();
+
+ let max_art_width = art_lines.iter().map(|line| line.len()).max().unwrap_or(0);
+
+ let max_lines = art_lines.len().max(table_lines.len());
+
+ for i in 0..max_lines {
+ let art_part = art_lines.get(i).unwrap_or(&"");
+ let table_part = table_lines.get(i).map(|s| s.as_str()).unwrap_or("");
+
+ println!("{:<width$} {}", art_part, table_part, width = max_art_width);
+ }
+ Ok(())
+ }
Some(Commands::RebuildCache) => {
println!("Rebuild cache command");
rebuild_cache()?;