}
process::exit(0);
}
- if let Some(arg) = &opts.print_config {
- implement_print_config(&mut ics.iter(), arg, &|ic, k| Some(match k {
- "link" => &ic.link,
- "server" => &ic.link.server,
- "client" => &ic.link.client,
- k => return ic.inspect_key(k),
- }))?;
- process::exit(0);
- }
+
+ implement_print_config(&mut ics.iter(), &opts.print_config,
+ &|ic, k| Some(match k {
+ "link" => &ic.link,
+ "server" => &ic.link.server,
+ "client" => &ic.link.client,
+ k => return ic.inspect_key(k),
+ }))?;
Ok((ics,))
});
{
let global_config = config::InstanceConfigGlobal::from(&ics);
- if let Some(arg) = &opts.print_config {
- implement_print_config(&mut iter::once(&global_config),
- arg, &|_,__| None)?;
- process::exit(0);
- }
+ implement_print_config(&mut iter::once(&global_config),
+ &opts.print_config, &|_,__| None)?;
if let Some(pidfile_path) = opts.pidfile.as_ref() {
(||{
#[throws(AE)]
pub fn implement_print_config<'c, C: InspectableConfig>(
configs: impl Iterator<Item=&'c C>,
- arg: &str,
+ arg: &Option<String>,
extra_key: &dyn Fn(&'c C, &str) -> Option<&'c dyn InspectableConfigValue>
) {
#[throws(AE)]
println!("{}", output);
}
- for config in configs {
- print_one_config(config, arg, &|k| extra_key(config, k))?;
+ if let Some(arg) = arg {
+ for config in configs {
+ print_one_config(config, arg, &|k| extra_key(config, k))?;
+ }
+ process::exit(0);
}
}