Add option for generating default config
This commit is contained in:
parent
ef1c124395
commit
891f61f046
17
src/main.rs
17
src/main.rs
@ -6,7 +6,10 @@ use std::{
|
||||
boxed::Box,
|
||||
error::Error,
|
||||
};
|
||||
use serde::Deserialize;
|
||||
use serde::{
|
||||
Deserialize,
|
||||
Serialize,
|
||||
};
|
||||
use sqlx::{
|
||||
prelude::*,
|
||||
sqlite::{
|
||||
@ -34,8 +37,13 @@ struct Options {
|
||||
/// Path to database
|
||||
#[structopt(short, long, value_name = "path", default_value = DEFAULT_DATABASE_PATH)]
|
||||
database_path: PathBuf,
|
||||
|
||||
/// Prints default config
|
||||
#[structopt(long)]
|
||||
generate_config: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[serde(default, rename_all = "kebab-case")]
|
||||
struct Config {
|
||||
database_path: PathBuf,
|
||||
@ -54,6 +62,11 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
||||
let clap_matches = Options::clap().get_matches();
|
||||
let options = Options::from_clap(&clap_matches);
|
||||
|
||||
if options.generate_config {
|
||||
println!("{}", toml::to_string_pretty(&Config::default())?);
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let mut config = get_config(&options)?;
|
||||
|
||||
if let Some(db_path) = clap_matches.value_of("database_path") {
|
||||
@ -109,5 +122,5 @@ fn get_config(options: &Options) -> std::io::Result<Config> {
|
||||
err
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user