aboutsummaryrefslogtreecommitdiff
path: root/crates/cli/src/nuke.rs
blob: 6e6624cef9437b7265fc6a77f65628b3100f7e91 (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
30
31
32
33
34
35
36
fn help() {
    println!("mihi nuke: Nuke the current installation.\n");
    println!("usage: mihi nuke [OPTIONS]\n");

    println!("Options:");
    println!("   -h, --help\t\tPrint this message.");
}

pub fn run(args: Vec<String>) {
    if let Some(arg) = args.into_iter().next() {
        match arg.as_str() {
            "-h" | "--help" => {
                help();
                std::process::exit(0);
            }
            _ => {
                println!("error: nuke: unknown flag: '{}'", arg.as_str());
                std::process::exit(1);
            }
        }
    }

    match mihi::get_config_path() {
        Ok(path) => match std::fs::remove_dir_all(path) {
            Ok(_) => {}
            Err(e) => {
                println!("error: nuke: {e}");
                std::process::exit(1);
            }
        },
        Err(e) => {
            println!("error: nuke: {e}");
            std::process::exit(1);
        }
    }
}