mirror of
https://gitlab.com/fabinfra/fabaccess/bffh.git
synced 2024-12-22 19:53:49 +01:00
added config check
This commit is contained in:
parent
8ce5c2f6ff
commit
fc614d7ce2
24
src/main.rs
24
src/main.rs
@ -40,6 +40,7 @@ use error::Error;
|
||||
use slog::Logger;
|
||||
|
||||
use paho_mqtt::AsyncClient;
|
||||
use crate::config::Config;
|
||||
|
||||
fn main() {
|
||||
use clap::{crate_version, crate_description, crate_name};
|
||||
@ -59,6 +60,11 @@ fn main() {
|
||||
.help("Print a default config to stdout instead of running")
|
||||
.long("print-default")
|
||||
)
|
||||
.arg(Arg::with_name("check config")
|
||||
.help("Check config for validity")
|
||||
.long("check")
|
||||
.requires("config")
|
||||
)
|
||||
.arg(Arg::with_name("dump")
|
||||
.help("Dump all databases into the given directory")
|
||||
.long("dump")
|
||||
@ -87,6 +93,24 @@ fn main() {
|
||||
|
||||
// Early return to exit.
|
||||
return;
|
||||
} else if matches.is_present("check config") {
|
||||
let configpath = matches.value_of("config").unwrap_or("/etc/diflouroborane.dhall");
|
||||
match config::read(&PathBuf::from_str(configpath).unwrap()) {
|
||||
Ok(cfg) => {
|
||||
let encoded = serde_dhall::serialize(&cfg).to_string().unwrap();
|
||||
|
||||
// Direct writing to fd 1 is faster but also prevents any print-formatting that could
|
||||
// invalidate the generated TOML
|
||||
let stdout = io::stdout();
|
||||
let mut handle = stdout.lock();
|
||||
handle.write_all(&encoded.as_bytes()).unwrap();
|
||||
std::process::exit(0);
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("{}", e);
|
||||
std::process::exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let retval;
|
||||
|
Loading…
Reference in New Issue
Block a user