summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2018-11-16 11:05:02 +0100
committerLinus Färnstrand <linus@mullvad.net>2018-11-16 12:01:00 +0100
commit296a8b7e83a9b174ca7e42a46cf02315c4e2c826 (patch)
treece0d75b0d6850f3ceb75b4ca354df1354ecd5fc7
parent75ebb64fbea39a4f11e698b5cb5d8ca52a2f4908 (diff)
downloadmullvadvpn-296a8b7e83a9b174ca7e42a46cf02315c4e2c826.tar.xz
mullvadvpn-296a8b7e83a9b174ca7e42a46cf02315c4e2c826.zip
Print MULLVAD_ path variable defaults in help text
-rw-r--r--mullvad-daemon/src/cli.rs30
-rw-r--r--mullvad-paths/src/cache.rs10
-rw-r--r--mullvad-paths/src/lib.rs8
-rw-r--r--mullvad-paths/src/resources.rs2
-rw-r--r--mullvad-paths/src/rpc_socket.rs16
-rw-r--r--mullvad-paths/src/settings.rs10
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))
}