diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2018-11-16 11:05:02 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2018-11-16 12:01:00 +0100 |
| commit | 296a8b7e83a9b174ca7e42a46cf02315c4e2c826 (patch) | |
| tree | ce0d75b0d6850f3ceb75b4ca354df1354ecd5fc7 | |
| parent | 75ebb64fbea39a4f11e698b5cb5d8ca52a2f4908 (diff) | |
| download | mullvadvpn-296a8b7e83a9b174ca7e42a46cf02315c4e2c826.tar.xz mullvadvpn-296a8b7e83a9b174ca7e42a46cf02315c4e2c826.zip | |
Print MULLVAD_ path variable defaults in help text
| -rw-r--r-- | mullvad-daemon/src/cli.rs | 30 | ||||
| -rw-r--r-- | mullvad-paths/src/cache.rs | 10 | ||||
| -rw-r--r-- | mullvad-paths/src/lib.rs | 8 | ||||
| -rw-r--r-- | mullvad-paths/src/resources.rs | 2 | ||||
| -rw-r--r-- | mullvad-paths/src/rpc_socket.rs | 16 | ||||
| -rw-r--r-- | mullvad-paths/src/settings.rs | 10 |
6 files changed, 49 insertions, 27 deletions
diff --git a/mullvad-daemon/src/cli.rs b/mullvad-daemon/src/cli.rs index 42f7ca9c2e..0fe85588fe 100644 --- a/mullvad-daemon/src/cli.rs +++ b/mullvad-daemon/src/cli.rs @@ -35,21 +35,31 @@ pub fn get_config() -> Config { } } -fn create_app() -> App<'static, 'static> { - let app = App::new(crate_name!()) - .version(version::PRODUCT_VERSION) - .author(crate_authors!(", ")) - .about(crate_description!()) - .after_help( +lazy_static::lazy_static! { + static ref ENV_DESC: String = format!( "ENV: MULLVAD_RESOURCE_DIR Resource directory (i.e used to locate a root CA certificate) - MULLVAD_SETTINGS_DIR Directory path for storing settings - MULLVAD_CACHE_DIR Directory path for storing cache + [Default: {}] + MULLVAD_SETTINGS_DIR Directory path for storing settings. [Default: {}] + MULLVAD_CACHE_DIR Directory path for storing cache. [Default: {}] MULLVAD_RPC_SOCKET_PATH Location of the management interface device. - It refers to Unix domain socket on Unix based platforms, and named pipe on Windows + It refers to Unix domain socket on Unix based platforms, and named pipe on Windows. + [Default: {}] + +", + mullvad_paths::get_default_resource_dir().display(), + mullvad_paths::get_default_settings_dir().expect("Unable to get settings dir").display(), + mullvad_paths::get_default_cache_dir().expect("Unable to get cache dir").display(), + mullvad_paths::get_default_rpc_socket_path().display()); +} -") +fn create_app() -> App<'static, 'static> { + let app = App::new(crate_name!()) + .version(version::PRODUCT_VERSION) + .author(crate_authors!(", ")) + .about(crate_description!()) + .after_help(ENV_DESC.as_str()) .arg( Arg::with_name("v") .short("v") diff --git a/mullvad-paths/src/cache.rs b/mullvad-paths/src/cache.rs index dcf799eeb9..78b7803eba 100644 --- a/mullvad-paths/src/cache.rs +++ b/mullvad-paths/src/cache.rs @@ -12,17 +12,19 @@ pub fn cache_dir() -> Result<PathBuf> { fn get_cache_dir() -> Result<PathBuf> { match env::var_os("MULLVAD_CACHE_DIR") { Some(path) => Ok(PathBuf::from(path)), - None => get_default_cache_dir().map(|dir| dir.join(crate::PRODUCT_NAME)), + None => get_default_cache_dir(), } } -fn get_default_cache_dir() -> Result<PathBuf> { +pub fn get_default_cache_dir() -> Result<PathBuf> { + let dir; #[cfg(target_os = "linux")] { - Ok(PathBuf::from("/var/cache")) + dir = Ok(PathBuf::from("/var/cache")) } #[cfg(any(target_os = "macos", windows))] { - ::dirs::cache_dir().ok_or_else(|| ::ErrorKind::FindDirError.into()) + dir = ::dirs::cache_dir().ok_or_else(|| ::ErrorKind::FindDirError.into()) } + dir.map(|dir| dir.join(crate::PRODUCT_NAME)) } diff --git a/mullvad-paths/src/lib.rs b/mullvad-paths/src/lib.rs index 4c0c55eb2a..17ba19b44a 100644 --- a/mullvad-paths/src/lib.rs +++ b/mullvad-paths/src/lib.rs @@ -42,16 +42,16 @@ fn create_and_return(dir_fn: fn() -> Result<PathBuf>) -> Result<PathBuf> { } mod cache; -pub use crate::cache::cache_dir; +pub use crate::cache::{cache_dir, get_default_cache_dir}; mod logs; pub use crate::logs::{get_log_dir, log_dir}; pub mod resources; -pub use crate::resources::get_resource_dir; +pub use crate::resources::{get_default_resource_dir, get_resource_dir}; mod rpc_socket; -pub use crate::rpc_socket::get_rpc_socket_path; +pub use crate::rpc_socket::{get_default_rpc_socket_path, get_rpc_socket_path}; mod settings; -pub use crate::settings::settings_dir; +pub use crate::settings::{get_default_settings_dir, settings_dir}; diff --git a/mullvad-paths/src/resources.rs b/mullvad-paths/src/resources.rs index ea6b7856d3..2589a93b86 100644 --- a/mullvad-paths/src/resources.rs +++ b/mullvad-paths/src/resources.rs @@ -10,7 +10,7 @@ pub fn get_resource_dir() -> PathBuf { } } -fn get_default_resource_dir() -> PathBuf { +pub fn get_default_resource_dir() -> PathBuf { match env::current_exe() { Ok(mut path) => { path.pop(); diff --git a/mullvad-paths/src/rpc_socket.rs b/mullvad-paths/src/rpc_socket.rs index f71e7a4edd..0863bc580d 100644 --- a/mullvad-paths/src/rpc_socket.rs +++ b/mullvad-paths/src/rpc_socket.rs @@ -4,9 +4,17 @@ use std::path::PathBuf; pub fn get_rpc_socket_path() -> PathBuf { match env::var_os("MULLVAD_RPC_SOCKET_PATH") { Some(path) => PathBuf::from(path), - #[cfg(unix)] - None => PathBuf::from("/var/run/mullvad-vpn"), - #[cfg(windows)] - None => PathBuf::from("//./pipe/Mullvad VPN"), + None => get_default_rpc_socket_path(), + } +} + +pub fn get_default_rpc_socket_path() -> PathBuf { + #[cfg(unix)] + { + PathBuf::from("/var/run/mullvad-vpn") + } + #[cfg(windows)] + { + PathBuf::from("//./pipe/Mullvad VPN") } } diff --git a/mullvad-paths/src/settings.rs b/mullvad-paths/src/settings.rs index 33f2283a3f..82872f38a4 100644 --- a/mullvad-paths/src/settings.rs +++ b/mullvad-paths/src/settings.rs @@ -12,17 +12,19 @@ pub fn settings_dir() -> Result<PathBuf> { fn get_settings_dir() -> Result<PathBuf> { match env::var_os("MULLVAD_SETTINGS_DIR") { Some(path) => Ok(PathBuf::from(path)), - None => get_default_settings_dir().map(|dir| dir.join(crate::PRODUCT_NAME)), + None => get_default_settings_dir(), } } -fn get_default_settings_dir() -> Result<PathBuf> { +pub fn get_default_settings_dir() -> Result<PathBuf> { + let dir; #[cfg(unix)] { - Ok(PathBuf::from("/etc")) + dir = Ok(PathBuf::from("/etc")); } #[cfg(windows)] { - ::dirs::data_local_dir().ok_or_else(|| ::ErrorKind::FindDirError.into()) + dir = ::dirs::data_local_dir().ok_or_else(|| ::ErrorKind::FindDirError.into()); } + dir.map(|dir| dir.join(crate::PRODUCT_NAME)) } |
