From aa5a4060ab5cd14a90e33da4399a8d9e34d3a518 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 11 Feb 2019 15:11:42 +0100 Subject: [PATCH] bin/proxmox-backup-api.rs: improve error handling --- src/bin/proxmox-backup-api.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/bin/proxmox-backup-api.rs b/src/bin/proxmox-backup-api.rs index fef08e9a..291b0288 100644 --- a/src/bin/proxmox-backup-api.rs +++ b/src/bin/proxmox-backup-api.rs @@ -6,6 +6,7 @@ use proxmox_backup::api::config::*; use proxmox_backup::server::rest::*; use proxmox_backup::auth_helpers::*; +use failure::*; use lazy_static::lazy_static; use futures::future::Future; @@ -14,23 +15,28 @@ use hyper; fn main() { + if let Err(err) = run() { + eprintln!("Error: {}", err); + std::process::exit(-1); + } +} + +fn run() -> Result<(), Error> { + if let Err(err) = syslog::init( syslog::Facility::LOG_DAEMON, log::LevelFilter::Info, Some("proxmox-backup-api")) { - eprintln!("unable to inititialize syslog: {}", err); - std::process::exit(-1); - } + bail!("unable to inititialize syslog - {}", err); + } if let Err(err) = generate_auth_key() { - eprintln!("unable to generate auth key: {}", err); - std::process::exit(-1); + bail!("unable to generate auth key - {}", err); } let _ = private_auth_key(); // load with lazy_static if let Err(err) = generate_csrf_key() { - eprintln!("unable to generate csrf key: {}", err); - std::process::exit(-1); + bail!("unable to generate csrf key - {}", err); } let _ = csrf_secret(); // load with lazy_static @@ -49,7 +55,8 @@ fn main() { .serve(rest_server) .map_err(|e| eprintln!("server error: {}", e)); - // Run this server for... forever! hyper::rt::run(server); + + Ok(()) }