otter/src/main.rs

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())
}