diff --git a/src/main.rs b/src/main.rs index b1b81ae..60e7cd4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,8 +3,8 @@ use eyre::{eyre, OptionExt, WrapErr}; use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::convert::TryFrom; -use std::{fmt,env}; use std::time::{Duration, SystemTime}; +use std::{env, fmt}; const RESTIC_ALARM_BUCKET: &str = "restic-alarm-state"; const RESTIC_ALARM_STATE_FILE: &str = "state.toml"; @@ -18,23 +18,27 @@ struct SmtpConfig { impl SmtpConfig { fn mailer(&self) -> Result { - use lettre::SmtpTransport; use lettre::transport::smtp::authentication::Credentials; + use lettre::SmtpTransport; Ok(SmtpTransport::relay(&self.address)? - .credentials(Credentials::new( - self.username.to_owned(), - self.password.to_owned(), - )) - .build()) + .credentials(Credentials::new( + self.username.to_owned(), + self.password.to_owned(), + )) + .build()) } async fn from_env() -> eyre::Result { let address = env::var("SMTP_ADDRESS")?; let username = env::var("SMTP_USERNAME")?; let password = env::var("SMTP_PASSWORD")?; - let smtp = SmtpConfig { address, username, password }; - if ! smtp.mailer()?.test_connection()? { - return Err(eyre!("Unable to contact the SMTP relay")) + let smtp = SmtpConfig { + address, + username, + password, + }; + if !smtp.mailer()?.test_connection()? { + return Err(eyre!("Unable to contact the SMTP relay")); } Ok(smtp) } @@ -277,7 +281,12 @@ struct RepoInfo { // (e.g. if it fails to parse). // So the error must not be propagated to the toplevel, which would abort the // alert for remaining repositories; it should instead just be reported/logged. -async fn check_repo(smtp: &SmtpConfig, client: &s3::Client, state: &mut State, repo: &str) -> eyre::Result { +async fn check_repo( + smtp: &SmtpConfig, + client: &s3::Client, + state: &mut State, + repo: &str, +) -> eyre::Result { let config = read_repo_config(client, repo).await?; let alert_status = if let Some(inactivity) = repo_last_snapshot(client, repo).await? { let last_alert = state.last_alert(repo);