daemon bin: more helpful error message on config file parsing error

This commit is contained in:
Antoine Poinsot 2023-08-10 11:46:41 +02:00
parent 222c8bba81
commit 01ce0f179d
No known key found for this signature in database
GPG Key ID: E13FC145CD3F4304

View File

@ -7,16 +7,20 @@ use std::{
use liana::{config::Config, DaemonHandle};
fn print_help_exit() {
eprintln!("A TOML configuration file is required to run lianad. By default lianad looks for a 'config.toml' file in its data directory. A different one may be provided like so: '--conf <config file path>'.");
eprintln!("A documented sample is available at https://github.com/wizardsardine/liana/blob/607c0abddab2ff5761b371c6020b0793b1a1bc97/contrib/lianad_config_example.toml.");
eprintln!("The default data directory path is a 'liana/' folder in the XDG standard configuration directory for all OSes but Linux ones, where it's '~/.liana/'.");
process::exit(1);
}
fn parse_args(args: Vec<String>) -> Option<PathBuf> {
if args.len() == 1 {
return None;
}
if args.len() != 3 {
eprintln!("A TOML configuration file is required to run lianad. By default lianad looks for a 'config.toml' file in its data directory. A different one may be provided like so: '--conf <config file path>'.");
eprintln!("A documented example of the configuration file is available at https://github.com/wizardsardine/liana/blob/607c0abddab2ff5761b371c6020b0793b1a1bc97/contrib/lianad_config_example.toml.");
eprintln!("The default data directory path is a 'liana/' folder in the XDG standard configuration directory for all OSes but Linux ones, where it's '~/.liana/'.");
process::exit(1);
print_help_exit();
}
Some(PathBuf::from(args[2].to_owned()))
@ -53,7 +57,8 @@ fn main() {
let config = Config::from_file(conf_file).unwrap_or_else(|e| {
eprintln!("Error parsing config: {}", e);
process::exit(1);
print_help_exit();
unreachable!();
});
setup_logger(config.log_level).unwrap_or_else(|e| {
eprintln!("Error setting up logger: {}", e);