corge/command/
clean.rs

1use crate::cli::CleanArgs;
2use anyhow::{Context, Result};
3use std::fs;
4
5pub fn clean(clean_args: CleanArgs) -> Result<()> {
6    let target_directory = clean_args.path.join("target");
7    let dependency_directory = clean_args.path.join("dependency");
8
9    if target_directory.exists() {
10        fs::remove_dir_all(&target_directory)
11            .with_context(|| format!("Failed to remove directory {:?}", &target_directory))?;
12    }
13
14    if dependency_directory.exists() && clean_args.deps_too {
15        fs::remove_dir_all(&dependency_directory)
16            .with_context(|| format!("Failed to remove directory {:?}", &dependency_directory))?;
17    }
18
19    Ok(())
20}