From 3bb44c1d1f1c74511840a187362856a35d42c082 Mon Sep 17 00:00:00 2001 From: Sergio Gasquez Date: Tue, 20 Sep 2022 11:25:19 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20Add=20support=20for=20clear?= =?UTF-8?q?ing=20dist=20folder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 12 +++++++----- src/utils.rs | 18 ++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main.rs b/src/main.rs index 8a6b5fd..ce97986 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ use crate::llvm_toolchain::LlvmToolchain; use crate::rust_toolchain::{ check_rust_installation, get_rust_crate, install_crate, RustCrate, RustToolchain, }; -use crate::utils::{get_tools_path, parse_targets, print_arguments}; +use crate::utils::{clear_dist_folder, get_tools_path, parse_targets, print_arguments}; use anyhow::Result; use clap::Parser; use clap_verbosity_flag::{InfoLevel, Verbosity}; @@ -68,7 +68,7 @@ pub struct InstallOpts { #[clap(short = 'l', long, default_value = "14")] pub llvm_version: String, /// [Only applies if using -s|--esp-idf-version]. Deletes some esp-idf folders to save space. - #[clap(short = 'm', long)] + #[clap(short = 'm', long, takes_value = false)] pub minified_espidf: bool, /// Nightly Rust toolchain version. #[clap(short = 'n', long, default_value = "nightly")] @@ -88,8 +88,8 @@ pub struct InstallOpts { #[clap(short = 't', long, default_value = "1.62.1.0")] pub toolchain_version: String, /// Removes cached distribution files. - #[clap(short = 'x', long)] - pub clear_cache: bool, + #[clap(short = 'x', long, takes_value = false)] + pub clear_dist: bool, /// Verbosity level of the logs. #[clap(flatten)] verbose: Verbosity, @@ -156,7 +156,9 @@ fn install(args: InstallOpts) -> Result<()> { install_crate(extra_crate)?; } - // TODO: Clear cache + if args.clear_dist { + clear_dist_folder()?; + } info!("{} Updating environment variables:", emoji::DIAMOND); for e in exports.iter() { diff --git a/src/utils.rs b/src/utils.rs index 050e68a..d7a2d5b 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -13,6 +13,12 @@ use std::{fs, io}; use tar::Archive; use xz2::read::XzDecoder; +pub fn clear_dist_folder() -> Result<()> { + info!("{} Clearing dist folder", emoji::WRENCH); + fs::remove_dir_all(&get_dist_path(""))?; + Ok(()) +} + pub fn parse_targets(build_target: &str) -> Result, String> { debug!("{} Parsing targets: {}", emoji::DEBUG, build_target); let mut chips: Vec = Vec::new(); @@ -131,21 +137,13 @@ pub fn download_file( Ok(format!("{}/{}", output_directory, file_name)) } -// pub fn get_python_env_path(idf_version: &str, python_version: &str) -> String { -// let tools_path = get_tools_path(); -// format!( -// "{}/python_env/idf{}_py{}_env", -// tools_path, idf_version, python_version -// ) -// } - pub fn print_arguments(args: &InstallOpts, arch: &str, targets: &Vec) { debug!( "{} Arguments: - Arch: {} - Build targets: {:?} - Cargo home: {:?} - - Clear cache: {:?} + - Clear dist folder: {:?} - ESP-IDF version: {:?} - Export file: {:?} - Extra crates: {:?} @@ -159,7 +157,7 @@ pub fn print_arguments(args: &InstallOpts, arch: &str, targets: &Vec) { arch, targets, &args.cargo_home, - args.clear_cache, + args.clear_dist, &args.espidf_version, &args.export_file, args.extra_crates,