summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-09-24 10:18:20 +0200
committerDavid Lönnhager <david.l@mullvad.net>2025-09-25 14:06:52 +0200
commitfb3fc074de6f47809187253d2d19b662ee0a3e40 (patch)
tree9835d3504019ab15b6333764fb36670c00007b7d /mullvad-cli/src
parent810e198364ad36e8163bab0de7e2d3f4143d5f0c (diff)
downloadmullvadvpn-fb3fc074de6f47809187253d2d19b662ee0a3e40.tar.xz
mullvadvpn-fb3fc074de6f47809187253d2d19b662ee0a3e40.zip
Add reset-settings command to CLI
Diffstat (limited to 'mullvad-cli/src')
-rw-r--r--mullvad-cli/src/cmds/reset.rs19
-rw-r--r--mullvad-cli/src/main.rs14
2 files changed, 29 insertions, 4 deletions
diff --git a/mullvad-cli/src/cmds/reset.rs b/mullvad-cli/src/cmds/reset.rs
index 88005c4631..a0ffafa28e 100644
--- a/mullvad-cli/src/cmds/reset.rs
+++ b/mullvad-cli/src/cmds/reset.rs
@@ -2,8 +2,8 @@ use super::receive_confirmation;
use anyhow::Result;
use mullvad_management_interface::MullvadProxyClient;
-pub async fn handle() -> Result<()> {
- if !receive_confirmation("Are you sure you want to disconnect, log out, delete all settings, logs and cache files for the Mullvad VPN system service?", false).await {
+pub async fn handle_factory_reset(assume_yes: bool) -> Result<()> {
+ if !assume_yes && !receive_confirmation("Are you sure you want to disconnect, log out, delete all settings, logs and cache files for the Mullvad VPN system service?", false).await {
return Ok(());
}
let mut rpc = MullvadProxyClient::new().await?;
@@ -12,3 +12,18 @@ pub async fn handle() -> Result<()> {
println!("If you're running systemd, to remove all logs, you must use journalctl");
Ok(())
}
+
+pub async fn handle_settings_reset(assume_yes: bool) -> Result<()> {
+ if !assume_yes
+ && !receive_confirmation(
+ "Are you sure you want to reset all settings to the default?",
+ false,
+ )
+ .await
+ {
+ return Ok(());
+ }
+ let mut rpc = MullvadProxyClient::new().await?;
+ rpc.reset_settings().await?;
+ Ok(())
+}
diff --git a/mullvad-cli/src/main.rs b/mullvad-cli/src/main.rs
index 2f4b727949..aca2774c38 100644
--- a/mullvad-cli/src/main.rs
+++ b/mullvad-cli/src/main.rs
@@ -129,7 +129,16 @@ enum Cli {
},
/// Reset settings, caches, and logs
- FactoryReset,
+ FactoryReset {
+ #[clap(long, short = 'y', default_value_t = false)]
+ assume_yes: bool,
+ },
+
+ /// Reset settings only, but remain logged in and keep logs and caches
+ ResetSettings {
+ #[clap(long, short = 'y', default_value_t = false)]
+ assume_yes: bool,
+ },
/// Manage custom lists
#[clap(subcommand)]
@@ -173,7 +182,8 @@ async fn main() -> Result<()> {
Cli::Obfuscation(cmd) => cmd.handle().await,
Cli::ApiAccess(cmd) => cmd.handle().await,
Cli::Version => version::print().await,
- Cli::FactoryReset => reset::handle().await,
+ Cli::FactoryReset { assume_yes } => reset::handle_factory_reset(assume_yes).await,
+ Cli::ResetSettings { assume_yes } => reset::handle_settings_reset(assume_yes).await,
Cli::Relay(cmd) => cmd.handle().await,
Cli::Tunnel(cmd) => cmd.handle().await,
Cli::SplitTunnel(cmd) => cmd.handle().await,