meli --test-config PATH tests a configuration file for syntax issues or missing options.
Caveat: right now undefined options/values do not return an error.
Backend specific options are also not validated.
Some(CreateConfig)=>error_and_exit!("invalid value for flag `--create-config`"),
Some(Config)=>error_and_exit!("invalid value for flag `--config`"),
Some(TestConfig)=>error_and_exit!("invalid value for flag `--test-config`"),
},
"--create-config"=>matchprev{
None=>prev=Some(CreateConfig),
Some(CreateConfig)=>error_and_exit!("invalid value for flag `--create-config`"),
Some(TestConfig)=>error_and_exit!("invalid value for flag `--test-config`"),
Some(Config)=>error_and_exit!("invalid value for flag `--config`"),
},
"--config"|"-c"=>matchprev{
@ -119,8 +129,9 @@ fn run_app() -> Result<()> {
args.config=Some(String::new());
prev=Some(Config);
}
Some(CreateConfig)=>error_and_exit!("Duplicate value for flag `--create-config`"),
Some(CreateConfig)=>error_and_exit!("invalid value for flag `--create-config`"),
Some(Config)=>error_and_exit!("invalid value for flag `--config`"),
Some(TestConfig)=>error_and_exit!("invalid value for flag `--test-config`"),
},
"--help"|"-h"=>{
args.help=true;
@ -138,6 +149,11 @@ fn run_app() -> Result<()> {
args.config=Some(i);
prev=None;
}
Some(TestConfig)ifargs.test_config.is_none()=>{
args.test_config=Some(i);
prev=None;
}
Some(TestConfig)=>error_and_exit!("Duplicate value for flag `--test-config`"),
Some(CreateConfig)=>error_and_exit!("Duplicate value for flag `--create-config`"),
Some(Config)=>error_and_exit!("Duplicate value for flag `--config`"),
},
@ -152,6 +168,9 @@ fn run_app() -> Result<()> {
println!("\t--help, -h\t\tshow this message and exit");
println!("\t--version, -v\t\tprint version and exit");
println!("\t--create-config[ PATH]\tCreate a sample configuration file with available configuration options. If PATH is not specified, meli will try to create it in $XDG_CONFIG_HOME/meli/config");
println!(
"\t--test-config PATH\tTest a configuration file for syntax issues or missing options."