add context to errors from calls to std::env::var

This commit is contained in:
2024-02-08 23:57:03 +01:00
parent 8620fa66b7
commit 68ef3ed018
+8 -8
View File
@@ -2,7 +2,11 @@ use disbahn::database::Database;
use disbahn::DisbahnClient; use disbahn::DisbahnClient;
use serenity::http::Http; use serenity::http::Http;
use std::env; use std::env;
use std::env::VarError; use anyhow::Context;
fn env_var(name: &str) -> anyhow::Result<String> {
env::var(name).with_context(|| format!("Unable to fetch environment variable {name}"))
}
#[tokio::main] #[tokio::main]
async fn main() -> anyhow::Result<()> { async fn main() -> anyhow::Result<()> {
@@ -12,13 +16,9 @@ async fn main() -> anyhow::Result<()> {
.filter_module(module_path!(), log::LevelFilter::Debug) .filter_module(module_path!(), log::LevelFilter::Debug)
.init(); .init();
let database_url = match env::var("DATABASE_URL") { let database_url = env_var("DATABASE_URL")?;
Ok(url) => url, let webhook_url = env_var("WEBHOOK_URL")?;
Err(VarError::NotPresent) => "disbahn.db".to_string(), let feed_url = env_var("FEED_URL")?;
Err(err) => return Err(err.into()),
};
let webhook_url = env::var("WEBHOOK_URL")?;
let feed_url = env::var("FEED_URL")?;
let database = Database::connect(&database_url)?; let database = Database::connect(&database_url)?;
let http = Http::new(""); let http = Http::new("");