This commit is contained in:
2024-01-31 17:06:39 +01:00
parent f40922030c
commit cff7dddf4e
3 changed files with 70 additions and 5 deletions

61
Cargo.lock generated
View File

@ -336,6 +336,33 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
[[package]]
name = "color-eyre"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204"
dependencies = [
"backtrace",
"color-spantrace",
"eyre",
"indenter",
"once_cell",
"owo-colors",
"tracing-error",
]
[[package]]
name = "color-spantrace"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2"
dependencies = [
"once_cell",
"owo-colors",
"tracing-core",
"tracing-error",
]
[[package]]
name = "colorchoice"
version = "1.0.0"
@ -548,6 +575,16 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "eyre"
version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799"
dependencies = [
"indenter",
"once_cell",
]
[[package]]
name = "failure"
version = "0.1.8"
@ -849,8 +886,10 @@ version = "0.1.0"
dependencies = [
"chrono",
"clap",
"color-eyre",
"dotenv",
"duplicate",
"eyre",
"futures",
"handlebars 3.5.5",
"http",
@ -1001,6 +1040,12 @@ dependencies = [
"unicode-normalization",
]
[[package]]
name = "indenter"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
[[package]]
name = "indexmap"
version = "2.2.1"
@ -1303,6 +1348,12 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]]
name = "owo-colors"
version = "3.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
[[package]]
name = "parking_lot"
version = "0.11.2"
@ -2340,6 +2391,16 @@ dependencies = [
"valuable",
]
[[package]]
name = "tracing-error"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
dependencies = [
"tracing",
"tracing-subscriber",
]
[[package]]
name = "tracing-log"
version = "0.2.0"

View File

@ -24,3 +24,5 @@ rocket_dyn_templates = { version = "0.1.0", features = ["handlebars"] }
tokio = { version = "1", features = ["fs"] }
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"] }
clap = { version = "4.4.18", features = ["derive", "env"] }
eyre = "0.6.11"
color-eyre = "0.6.2"

View File

@ -3,10 +3,10 @@ mod routes;
use clap::Parser;
use dotenv::dotenv;
use eyre::Context;
use health::HealthState;
use rocket::fs::FileServer;
use rocket_dyn_templates::Template;
use std::io;
use std::path::PathBuf;
use std::sync::Arc;
use std::time::Duration;
@ -20,14 +20,16 @@ struct Opt {
}
#[rocket::main]
async fn main() -> io::Result<()> {
async fn main() -> eyre::Result<()> {
dotenv().ok();
let opt = Opt::parse();
color_eyre::install()?;
let config = fs::read_to_string(&opt.config)
.await
.expect("failed to read config file");
let config = ron::from_str(&config).expect("failed to parse config file");
.wrap_err_with(|| format!("failed to read config file: {:?}", opt.config))?;
let config = ron::from_str(&config)
.wrap_err_with(|| format!("failed to parse config file: {:?}", opt.config))?;
let state = Arc::new(HealthState::new(config));
let rocket = rocket::build()
@ -38,7 +40,7 @@ async fn main() -> io::Result<()> {
start_poller(state);
rocket.launch().await.expect("rocket failed to launch");
rocket.launch().await.wrap_err("rocket failed to launch")?;
Ok(())
}