summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli/src/cmds/reset.rs
blob: a0ffafa28e652a93d7d0b5784588177f671b7e05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use super::receive_confirmation;
use anyhow::Result;
use mullvad_management_interface::MullvadProxyClient;

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?;
    rpc.factory_reset().await?;
    #[cfg(target_os = "linux")]
    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(())
}