colored std-output for better readability
This commit is contained in:
parent
c4fc33bc50
commit
81714dfdc0
|
@ -1,5 +1,6 @@
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
|
|
||||||
|
use colored::Colorize;
|
||||||
use lettre::{Message, SmtpTransport, Transport};
|
use lettre::{Message, SmtpTransport, Transport};
|
||||||
use lettre::message::{header, SinglePart};
|
use lettre::message::{header, SinglePart};
|
||||||
use lettre::transport::smtp::authentication::Credentials;
|
use lettre::transport::smtp::authentication::Credentials;
|
||||||
|
@ -104,8 +105,9 @@ impl Email {
|
||||||
Ok(message_id)
|
Ok(message_id)
|
||||||
} else {
|
} else {
|
||||||
println!(
|
println!(
|
||||||
"[DRY RUN - NOT sending email]\n(raw message:)\n{}",
|
"{}\n(raw message:)\n{}",
|
||||||
std::str::from_utf8(&email.formatted()).unwrap_or("((UTF-8 error))")
|
"[DRY RUN - NOT sending email]".yellow(),
|
||||||
|
std::str::from_utf8(&email.formatted()).unwrap_or("((UTF-8 error))").blue()
|
||||||
);
|
);
|
||||||
Ok("dummy-message-id@localhost".to_string())
|
Ok("dummy-message-id@localhost".to_string())
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,11 +16,13 @@
|
||||||
//! let all_ok = !cfg.has_errors();
|
//! let all_ok = !cfg.has_errors();
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
use rusqlite::{params, Connection, Result};
|
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::ops::Index;
|
use std::ops::Index;
|
||||||
|
|
||||||
|
use colored::Colorize;
|
||||||
|
use rusqlite::{Connection, params, Result};
|
||||||
|
|
||||||
/// Simple SQLite-backed key/value store.
|
/// Simple SQLite-backed key/value store.
|
||||||
///
|
///
|
||||||
/// All failing writes will log a message, any errors will set `has_errors`.
|
/// All failing writes will log a message, any errors will set `has_errors`.
|
||||||
|
@ -122,10 +124,10 @@ impl KeyValueStore {
|
||||||
while let Some(row) = rows.next()? {
|
while let Some(row) = rows.next()? {
|
||||||
let key: String = row.get(0)?;
|
let key: String = row.get(0)?;
|
||||||
if exclude_set.contains(key.as_str()) {
|
if exclude_set.contains(key.as_str()) {
|
||||||
eprintln!("{} = REDACTED", key);
|
eprintln!("{}{}", key, " = REDACTED".blue());
|
||||||
} else {
|
} else {
|
||||||
let value: String = row.get(1)?;
|
let value: String = row.get(1)?;
|
||||||
eprintln!("{} = {}", key, value);
|
eprintln!("{}{}{}", key, " = ".blue(), value.blue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
19
src/main.rs
19
src/main.rs
|
@ -4,6 +4,7 @@ use std::error::Error;
|
||||||
|
|
||||||
use chrono::{Datelike, Local, NaiveDate, Weekday};
|
use chrono::{Datelike, Local, NaiveDate, Weekday};
|
||||||
use clap::{Arg, Command};
|
use clap::{Arg, Command};
|
||||||
|
use colored::Colorize;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use reqwest::blocking::Client;
|
use reqwest::blocking::Client;
|
||||||
|
|
||||||
|
@ -133,6 +134,19 @@ fn parse_args() -> Args {
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn Error>> {
|
fn main() -> Result<(), Box<dyn Error>> {
|
||||||
// set up config file access
|
// set up config file access
|
||||||
|
|
||||||
|
let ansi_art = r#"
|
||||||
|
_____ _____ _____ ____ _____ _ ____ _
|
||||||
|
/ ____/ ____/ ____| _ \ | __ \| | | _ \ | |
|
||||||
|
| | | | | | | |_) | | |__) | | ___ _ __ _ _ _ __ ___ | |_) | ___ | |_
|
||||||
|
| | | | | | | _ < | ___/| |/ _ \ '_ \| | | | '_ ` _ \| _ < / _ \| __|
|
||||||
|
| |___| |___| |____| |_) | | | | | __/ | | | |_| | | | | | | |_) | (_) | |_
|
||||||
|
\_____\_____\_____|____/ |_| |_|\___|_| |_|\__,_|_| |_| |_|____/ \___/ \__|
|
||||||
|
|
||||||
|
"#;
|
||||||
|
|
||||||
|
println!("{}", ansi_art.red());
|
||||||
|
|
||||||
let args = parse_args();
|
let args = parse_args();
|
||||||
let config_file = args.config_file.as_str();
|
let config_file = args.config_file.as_str();
|
||||||
let config = KV::new(config_file).unwrap();
|
let config = KV::new(config_file).unwrap();
|
||||||
|
@ -154,7 +168,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||||
&config["email-to"],
|
&config["email-to"],
|
||||||
config.get("email-in-reply-to").ok(),
|
config.get("email-in-reply-to").ok(),
|
||||||
);
|
);
|
||||||
println!("[START]\nAktueller Zustand der DB:");
|
println!("[START]\n{}", "Aktueller Zustand der DB:".bold());
|
||||||
config.dump_redacting(&["email-password", "wiki-http-password", "wiki-api-secret", "matrix-password"]).ok();
|
config.dump_redacting(&["email-password", "wiki-http-password", "wiki-api-secret", "matrix-password"]).ok();
|
||||||
|
|
||||||
// Dienstage diesen Monat
|
// Dienstage diesen Monat
|
||||||
|
@ -332,8 +346,7 @@ Und hier ist das Protokoll des letzten Plenums:
|
||||||
mediawiki::pad_ins_wiki(old_pad_content_without_top_instructions);
|
mediawiki::pad_ins_wiki(old_pad_content_without_top_instructions);
|
||||||
}
|
}
|
||||||
println!("message id: {:?}", message_id);
|
println!("message id: {:?}", message_id);
|
||||||
|
println!("[ENDE]\n{}", "Aktueller Zustand der DB:".bold());
|
||||||
println!("[ENDE]\nAktueller Zustand der DB:");
|
|
||||||
config.dump_redacting(&["email-password", "wiki-http-password", "wiki-api-secret", "matrix-password"]).ok();
|
config.dump_redacting(&["email-password", "wiki-http-password", "wiki-api-secret", "matrix-password"]).ok();
|
||||||
|
|
||||||
if config.has_errors() {
|
if config.has_errors() {
|
||||||
|
|
|
@ -3,7 +3,6 @@ use std::fs::File;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
|
||||||
use pandoc::{PandocError, PandocOutput};
|
use pandoc::{PandocError, PandocOutput};
|
||||||
use reqwest;
|
|
||||||
use reqwest::blocking::Client;
|
use reqwest::blocking::Client;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
|
@ -105,3 +104,4 @@ pub fn get_login_token(client: &Client, http_user: &str, http_pass: &String) ->
|
||||||
let response_deserialized: QueryResponse = serde_json::from_str(&resp)?;
|
let response_deserialized: QueryResponse = serde_json::from_str(&resp)?;
|
||||||
Ok(response_deserialized.query.tokens.logintoken)
|
Ok(response_deserialized.query.tokens.logintoken)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue