diff options
author | Sam Tay <sam.chong.tay@gmail.com> | 2020-06-07 18:28:10 -0700 |
---|---|---|
committer | Sam Tay <sam.chong.tay@gmail.com> | 2020-06-07 18:36:39 -0700 |
commit | 1bf39e9128b67e234aa0306ee19b41342bd8c4e1 (patch) | |
tree | 8bed8569254df81e73359711fb3900944dc3f431 /src/main.rs | |
parent | 556612119a77d8235904819a2f17a8ed82ca304c (diff) |
Leverage termimad to print sites in a table
And scrap all the crossterm wrappers in term.rs
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/src/main.rs b/src/main.rs index 9c75662..5e91580 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,6 @@ mod config; mod error; mod macros; mod stackexchange; -mod term; use config::Config; use crossterm::style::Color; @@ -11,8 +10,6 @@ use error::{Error, ErrorKind}; use lazy_static::lazy_static; use minimad::mad_inline; use stackexchange::{LocalStorage, StackExchange}; -use std::io::stderr; -use term::{prefix_err, ColoredOutput}; use termimad::MadSkin; fn main() { @@ -32,20 +29,15 @@ fn main() { if opts.list_sites { let sites = ls.sites()?; - match sites.iter().map(|s| s.api_site_parameter.len()).max() { - Some(max_w) => { - for s in sites { - // TODO print as table! - println!("{:>w$}: {}", s.api_site_parameter, s.site_url, w = max_w); - } - } - None => { - stderr() - .queue_error("The site list is empty. Try running ") - .queue_code_inline("so --update-sites") - .unsafe_flush(); - } + let mut md = String::new(); + md.push_str("|:-:|:-:|\n"); + md.push_str("|Site Code|Site URL|\n"); + md.push_str("|-:|:-|\n"); + for s in sites.iter() { + md.push_str(&format!("|{}|{}\n", s.api_site_parameter, s.site_url)); } + md.push_str("|-\n"); + termimad::print_text(&md); return Ok(()); } @@ -69,10 +61,14 @@ fn main() { kind: ErrorKind::EmptySites, .. }) => { - stderr() - .queue_error("The cached site list is empty. This can likely be fixed by\n\n") - .queue_code("so --update-sites\n\n") - .unsafe_flush(); + // TODO use text wrapping feature + print_error!( + skin, + "The cached site list is empty. This can likely be fixed by\n\n\ + ```\n\ + so --update-sites\n\ + ```" + )?; return Ok(()); } Err(e) => return Err(e), @@ -101,10 +97,10 @@ fn main() { Ok(()) })() + .or_else(|e| print_error!(MadSkin::default(), "{}", &e.error)) .unwrap_or_else(|e| { - let Error { error, .. } = e; - printerr!(error); - }) + println!("{}", e.error); + }); } #[cfg(test)] |