36 lines
649 B
Rust
36 lines
649 B
Rust
mod cli;
|
|
mod config;
|
|
mod db;
|
|
mod gpodder;
|
|
mod server;
|
|
|
|
use clap::Parser;
|
|
|
|
use std::{fmt::Write, process::ExitCode};
|
|
|
|
const DB_FILENAME: &str = "otter.sqlite3";
|
|
|
|
pub trait ErrorExt: std::error::Error {
|
|
/// Return the full chain of error messages
|
|
fn stack(&self) -> String {
|
|
let mut msg = format!("{}", self);
|
|
let mut err = self.source();
|
|
|
|
while let Some(src) = err {
|
|
write!(msg, " - {}", src).unwrap();
|
|
|
|
err = src.source();
|
|
}
|
|
|
|
msg
|
|
}
|
|
}
|
|
|
|
impl<E: std::error::Error> ErrorExt for E {}
|
|
|
|
fn main() -> ExitCode {
|
|
let args = cli::Cli::parse();
|
|
|
|
ExitCode::from(args.run())
|
|
}
|