diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-09-24 10:18:20 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-09-25 14:06:52 +0200 |
| commit | fb3fc074de6f47809187253d2d19b662ee0a3e40 (patch) | |
| tree | 9835d3504019ab15b6333764fb36670c00007b7d /mullvad-cli/src | |
| parent | 810e198364ad36e8163bab0de7e2d3f4143d5f0c (diff) | |
| download | mullvadvpn-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.rs | 19 | ||||
| -rw-r--r-- | mullvad-cli/src/main.rs | 14 |
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, |
