diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-06-28 08:45:06 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-07-02 10:02:18 -0300 |
| commit | eb1b3669d518dbf7f93a426bb609c6af90f22041 (patch) | |
| tree | bcf028a8c2c116849df65d709e96ab14c8029081 | |
| parent | b559a99f5d171bd4c271741dda675e6eb9baa5bc (diff) | |
| download | mullvadvpn-eb1b3669d518dbf7f93a426bb609c6af90f22041.tar.xz mullvadvpn-eb1b3669d518dbf7f93a426bb609c6af90f22041.zip | |
Log errors returned by main `run` function
| -rw-r--r-- | mullvad-daemon/src/main.rs | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index 37bfcb56a9..d5e50f88b0 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -85,13 +85,13 @@ use talpid_types::net::{TunnelEndpoint, TunnelEndpointData, TunnelOptions}; error_chain!{ errors { + LogError(msg: &'static str) { + description("Error setting up log") + display("Error setting up log: {}", msg) + } NoCacheDir { description("Unable to create cache directory") } - #[cfg(windows)] - NoLogDir { - description("Unable to create log directory") - } DaemonIsAlreadyRunning { description("Another instance of the daemon is already running") } @@ -834,12 +834,27 @@ impl Drop for Daemon { } -quick_main!(run); +fn main() { + ::std::process::exit(match run() { + Ok(_) => 0, + Err(error) => { + if let &ErrorKind::LogError(_) = error.kind() { + eprintln!("{}", error.display_chain()); + } else { + error!("{}", error.display_chain()); + } + 1 + } + }); +} fn run() -> Result<()> { let config = cli::get_config(); let log_dir = if config.log_to_file { - Some(mullvad_paths::log_dir().chain_err(|| "Unable to get log directory")?) + Some( + mullvad_paths::log_dir() + .chain_err(|| ErrorKind::LogError("Unable to get log directory"))?, + ) } else { None }; @@ -849,7 +864,7 @@ fn run() -> Result<()> { config.log_level, log_file.as_ref(), config.log_stdout_timestamps, - ).chain_err(|| "Unable to initialize logger")?; + ).chain_err(|| ErrorKind::LogError("Unable to initialize logger"))?; log_version(); if let Some(ref log_dir) = log_dir { info!("Logging to {}", log_dir.display()); |
