diff options
| -rw-r--r-- | mullvad-daemon/src/main.rs | 2 | ||||
| -rw-r--r-- | mullvad-daemon/src/settings.rs | 2 | ||||
| -rw-r--r-- | mullvad-ipc-client/src/lib.rs | 2 | ||||
| -rw-r--r-- | mullvad-paths/src/cache.rs | 13 | ||||
| -rw-r--r-- | mullvad-paths/src/lib.rs | 4 | ||||
| -rw-r--r-- | mullvad-paths/src/logs.rs | 3 | ||||
| -rw-r--r-- | mullvad-paths/src/settings.rs | 17 |
7 files changed, 30 insertions, 13 deletions
diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index 5c18584b1f..43cc2e49e0 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -892,7 +892,7 @@ fn run_standalone(config: cli::Config) -> Result<()> { None }; let resource_dir = mullvad_paths::get_resource_dir(); - let cache_dir = mullvad_paths::get_cache_dir().chain_err(|| "Unable to get cache dir")?; + let cache_dir = mullvad_paths::cache_dir().chain_err(|| "Unable to get cache dir")?; let daemon = Daemon::new(log_dir, resource_dir, cache_dir).chain_err(|| "Unable to initialize daemon")?; diff --git a/mullvad-daemon/src/settings.rs b/mullvad-daemon/src/settings.rs index d3abd190d6..0ff007cce8 100644 --- a/mullvad-daemon/src/settings.rs +++ b/mullvad-daemon/src/settings.rs @@ -87,7 +87,7 @@ impl Settings { } fn get_settings_path() -> Result<PathBuf> { - let dir = ::mullvad_paths::get_settings_dir().chain_err(|| ErrorKind::DirectoryError)?; + let dir = ::mullvad_paths::settings_dir().chain_err(|| ErrorKind::DirectoryError)?; Ok(dir.join(SETTINGS_FILE)) } diff --git a/mullvad-ipc-client/src/lib.rs b/mullvad-ipc-client/src/lib.rs index 48af377793..6c1ade7fb1 100644 --- a/mullvad-ipc-client/src/lib.rs +++ b/mullvad-ipc-client/src/lib.rs @@ -6,7 +6,7 @@ extern crate serde; extern crate talpid_ipc; extern crate talpid_types; -use std::fs::{File, Metadata}; +use std::fs::File; use std::io::{BufRead, BufReader}; use std::path::{Path, PathBuf}; diff --git a/mullvad-paths/src/cache.rs b/mullvad-paths/src/cache.rs index 8a50b967c6..aaf332040c 100644 --- a/mullvad-paths/src/cache.rs +++ b/mullvad-paths/src/cache.rs @@ -1,9 +1,18 @@ use {ErrorKind, Result, ResultExt}; use std::env; +use std::fs; use std::path::PathBuf; -pub fn get_cache_dir() -> Result<PathBuf> { +/// Creates and returns the cache directory pointed to by `MULLVAD_CACHE_DIR`, or the default +/// one if that variable is unset. +pub fn cache_dir() -> Result<PathBuf> { + let dir = get_cache_dir()?; + fs::create_dir_all(&dir).chain_err(|| ErrorKind::CreateDirFailed)?; + Ok(dir) +} + +fn get_cache_dir() -> Result<PathBuf> { match env::var_os("MULLVAD_CACHE_DIR") { Some(path) => Ok(PathBuf::from(path)), None => get_default_cache_dir(), @@ -21,6 +30,6 @@ fn get_default_cache_dir() -> Result<PathBuf> { #[cfg(any(target_os = "macos", windows))] fn get_default_cache_dir() -> Result<PathBuf> { - ::app_dirs::app_root(::app_dirs::AppDataType::UserCache, &::APP_INFO) + ::app_dirs::get_app_root(::app_dirs::AppDataType::UserCache, &::APP_INFO) .chain_err(|| ErrorKind::CreateDirFailed) } diff --git a/mullvad-paths/src/lib.rs b/mullvad-paths/src/lib.rs index 861e8452d8..7a00b7b3fd 100644 --- a/mullvad-paths/src/lib.rs +++ b/mullvad-paths/src/lib.rs @@ -23,7 +23,7 @@ error_chain! { } mod cache; -pub use cache::get_cache_dir; +pub use cache::cache_dir; mod logs; pub use logs::{get_log_dir, log_dir}; @@ -35,4 +35,4 @@ mod rpc_address; pub use rpc_address::get_rpc_address_path; mod settings; -pub use settings::get_settings_dir; +pub use settings::settings_dir; diff --git a/mullvad-paths/src/logs.rs b/mullvad-paths/src/logs.rs index 34b7ae312c..eb57da3f71 100644 --- a/mullvad-paths/src/logs.rs +++ b/mullvad-paths/src/logs.rs @@ -4,7 +4,8 @@ use std::env; use std::fs; use std::path::PathBuf; -/// Creates and returns the logging directory. +/// Creates and returns the logging directory pointed to by `MULLVAD_LOG_DIR`, or the default +/// one if that variable is unset. pub fn log_dir() -> Result<PathBuf> { let dir = get_log_dir()?; fs::create_dir_all(&dir).chain_err(|| ErrorKind::CreateDirFailed)?; diff --git a/mullvad-paths/src/settings.rs b/mullvad-paths/src/settings.rs index 680ddf3c8d..ed9762409f 100644 --- a/mullvad-paths/src/settings.rs +++ b/mullvad-paths/src/settings.rs @@ -1,9 +1,18 @@ use {ErrorKind, Result, ResultExt}; use std::env; +use std::fs; use std::path::PathBuf; -pub fn get_settings_dir() -> Result<PathBuf> { +/// Creates and returns the settings directory pointed to by `MULLVAD_SETTINGS_DIR`, or the default +/// one if that variable is unset. +pub fn settings_dir() -> Result<PathBuf> { + let dir = get_settings_dir()?; + fs::create_dir_all(&dir).chain_err(|| ErrorKind::CreateDirFailed)?; + Ok(dir) +} + +fn get_settings_dir() -> Result<PathBuf> { match env::var_os("MULLVAD_SETTINGS_DIR") { Some(path) => Ok(PathBuf::from(path)), None => get_default_settings_dir(), @@ -12,13 +21,11 @@ pub fn get_settings_dir() -> Result<PathBuf> { #[cfg(unix)] fn get_default_settings_dir() -> Result<PathBuf> { - let dir = PathBuf::from("/etc/mullvad-daemon"); - ::std::fs::create_dir_all(&dir).chain_err(|| ErrorKind::CreateDirFailed)?; - Ok(dir) + Ok(PathBuf::from("/etc/mullvad-daemon")) } #[cfg(windows)] fn get_default_settings_dir() -> Result<PathBuf> { - ::app_dirs::app_root(::app_dirs::AppDataType::UserConfig, &::APP_INFO) + ::app_dirs::get_app_root(::app_dirs::AppDataType::UserConfig, &::APP_INFO) .chain_err(|| ErrorKind::CreateDirFailed) } |
