diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2019-03-29 07:56:27 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2019-03-29 10:51:24 +0100 |
| commit | d798558a71c0f2a280654b19819a758b730b45f3 (patch) | |
| tree | f6a9d723b0188282733994174e29959ece49fa24 | |
| parent | c95b0e55a5b56a7dc3fa15e51240ec531a48f9a5 (diff) | |
| download | mullvadvpn-d798558a71c0f2a280654b19819a758b730b45f3.tar.xz mullvadvpn-d798558a71c0f2a280654b19819a758b730b45f3.zip | |
Remove error-chain from mullvad-paths
| -rw-r--r-- | Cargo.lock | 2 | ||||
| -rw-r--r-- | mullvad-paths/Cargo.toml | 2 | ||||
| -rw-r--r-- | mullvad-paths/src/cache.rs | 2 | ||||
| -rw-r--r-- | mullvad-paths/src/lib.rs | 41 | ||||
| -rw-r--r-- | mullvad-paths/src/settings.rs | 3 |
5 files changed, 24 insertions, 26 deletions
diff --git a/Cargo.lock b/Cargo.lock index 53d74ecece..76061d1a26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1131,7 +1131,7 @@ name = "mullvad-paths" version = "0.1.0" dependencies = [ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "err-derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/mullvad-paths/Cargo.toml b/mullvad-paths/Cargo.toml index ceb6391e32..131a6dd798 100644 --- a/mullvad-paths/Cargo.toml +++ b/mullvad-paths/Cargo.toml @@ -7,7 +7,7 @@ license = "GPL-3.0" edition = "2018" [dependencies] -error-chain = "0.12" +err-derive = "0.1.5" log = "0.4" [target.'cfg(any(windows, target_os = "macos"))'.dependencies] diff --git a/mullvad-paths/src/cache.rs b/mullvad-paths/src/cache.rs index 7493606d66..dd4307572c 100644 --- a/mullvad-paths/src/cache.rs +++ b/mullvad-paths/src/cache.rs @@ -22,7 +22,7 @@ pub fn get_default_cache_dir() -> Result<PathBuf> { } #[cfg(any(target_os = "macos", windows))] { - dir = dirs::cache_dir().ok_or_else(|| crate::ErrorKind::FindDirError.into()) + dir = dirs::cache_dir().ok_or(crate::Error::FindDirError) } dir.map(|dir| dir.join(crate::PRODUCT_NAME)) } diff --git a/mullvad-paths/src/lib.rs b/mullvad-paths/src/lib.rs index 2e458c7169..1d829e1145 100644 --- a/mullvad-paths/src/lib.rs +++ b/mullvad-paths/src/lib.rs @@ -1,23 +1,22 @@ -#[macro_use] -extern crate error_chain; +use std::{fs, io, path::PathBuf}; -use std::{fs, path::PathBuf}; +pub type Result<T> = std::result::Result<T, Error>; -error_chain! { - errors { - CreateDirFailed(path: PathBuf) { - description("Failed to create directory") - display("Failed to create directory {}", path.display()) - } - SetDirPermissionFailed(path: PathBuf) { - description("Failed to set directory permissions") - display("Failed to set directory permissions on {}", path.display()) - } - #[cfg(any(windows, target_os = "macos"))] - FindDirError { description("Not able to find requested directory" )} - #[cfg(windows)] - NoProgramDataDir { description("Missing %ALLUSERSPROFILE% environment variable") } - } +#[derive(err_derive::Error, Debug)] +pub enum Error { + #[error(display = "Failed to create directory {}", _0)] + CreateDirFailed(String, #[error(cause)] io::Error), + + #[error(display = "Failed to set directory permissions on {}", _0)] + SetDirPermissionFailed(String, #[error(cause)] io::Error), + + #[cfg(any(windows, target_os = "macos"))] + #[error(display = "Not able to find requested directory")] + FindDirError, + + #[cfg(windows)] + #[error(display = "Missing %ALLUSERSPROFILE% environment variable")] + NoProgramDataDir, } #[cfg(unix)] @@ -31,7 +30,7 @@ const PRODUCT_NAME: &str = "Mullvad VPN"; fn get_allusersprofile_dir() -> Result<PathBuf> { match std::env::var_os("ALLUSERSPROFILE") { Some(dir) => Ok(PathBuf::from(&dir)), - None => bail!(ErrorKind::NoProgramDataDir), + None => Err(Error::NoProgramDataDir), } } @@ -40,10 +39,10 @@ fn create_and_return( permissions: Option<fs::Permissions>, ) -> Result<PathBuf> { let dir = dir_fn()?; - fs::create_dir_all(&dir).chain_err(|| ErrorKind::CreateDirFailed(dir.clone()))?; + fs::create_dir_all(&dir).map_err(|e| Error::CreateDirFailed(dir.display().to_string(), e))?; if let Some(permissions) = permissions { fs::set_permissions(&dir, permissions) - .chain_err(|| ErrorKind::SetDirPermissionFailed(dir.clone()))?; + .map_err(|e| Error::SetDirPermissionFailed(dir.display().to_string(), e))?; } Ok(dir) } diff --git a/mullvad-paths/src/settings.rs b/mullvad-paths/src/settings.rs index 1c720eab50..0645a38a6e 100644 --- a/mullvad-paths/src/settings.rs +++ b/mullvad-paths/src/settings.rs @@ -1,5 +1,4 @@ use crate::Result; - use std::{env, path::PathBuf}; /// Creates and returns the settings directory pointed to by `MULLVAD_SETTINGS_DIR`, or the default @@ -23,7 +22,7 @@ pub fn get_default_settings_dir() -> Result<PathBuf> { } #[cfg(windows)] { - dir = dirs::data_local_dir().ok_or_else(|| crate::ErrorKind::FindDirError.into()); + dir = dirs::data_local_dir().ok_or(crate::Error::FindDirError); } dir.map(|dir| dir.join(crate::PRODUCT_NAME)) } |
