mirror of
https://gitlab.com/fabinfra/fabaccess/bffh.git
synced 2024-11-10 17:43:23 +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 slog::Logger;
|
||||||
|
|
||||||
use paho_mqtt::AsyncClient;
|
use paho_mqtt::AsyncClient;
|
||||||
|
use crate::config::Config;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
use clap::{crate_version, crate_description, crate_name};
|
use clap::{crate_version, crate_description, crate_name};
|
||||||
@ -59,6 +60,11 @@ fn main() {
|
|||||||
.help("Print a default config to stdout instead of running")
|
.help("Print a default config to stdout instead of running")
|
||||||
.long("print-default")
|
.long("print-default")
|
||||||
)
|
)
|
||||||
|
.arg(Arg::with_name("check config")
|
||||||
|
.help("Check config for validity")
|
||||||
|
.long("check")
|
||||||
|
.requires("config")
|
||||||
|
)
|
||||||
.arg(Arg::with_name("dump")
|
.arg(Arg::with_name("dump")
|
||||||
.help("Dump all databases into the given directory")
|
.help("Dump all databases into the given directory")
|
||||||
.long("dump")
|
.long("dump")
|
||||||
@ -87,6 +93,24 @@ fn main() {
|
|||||||
|
|
||||||
// Early return to exit.
|
// Early return to exit.
|
||||||
return;
|
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;
|
let retval;
|
||||||
|
Loading…
Reference in New Issue
Block a user