]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/bin/proxmox-backup-api.rs
bin/proxmox-backup-api.rs: improve error handling
[proxmox-backup.git] / src / bin / proxmox-backup-api.rs
index fef08e9a0c83b7c08bf58f75bf185eb96833928d..291b0288fa79273fdc0ce6680e1b1c9ae5753bb9 100644 (file)
@@ -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(())
 }