use distant::{Cli, Format, MainResult};
#[cfg(unix)]
fn main() -> MainResult {
let cli = match Cli::initialize() {
Ok(cli) => cli,
Err(x) => return MainResult::from(x),
};
let _logger = cli.init_logger();
let format = cli.options.command.format();
let result = MainResult::from(cli.run());
match format {
Format::Shell => result.shell(),
Format::Json => result.json(),
}
}
#[cfg(windows)]
fn main() -> MainResult {
let cli = match Cli::initialize() {
Ok(cli) => cli,
Err(x) => return MainResult::from(x),
};
let _logger = cli.init_logger();
let format = cli.options.command.format();
if cli.is_manager_listen_command() {
match distant::win_service::run() {
Ok(_) => return MainResult::OK,
Err(distant::win_service::ServiceError::Service(_)) => (),
Err(distant::win_service::ServiceError::Anyhow(x)) => return MainResult::from(x),
}
}
let result = MainResult::from(cli.run());
match format {
Format::Shell => result.shell(),
Format::Json => result.json(),
}
}