allow ignoring files

This commit is contained in:
nora 2023-03-27 21:52:32 +02:00
parent 4efb617ae9
commit 729deb5110
2 changed files with 23 additions and 0 deletions

View file

@ -91,6 +91,10 @@ pub struct Options {
/// lint format and which output stream is used. Defaults to cargo and stdout. /// lint format and which output stream is used. Defaults to cargo and stdout.
#[arg(long)] #[arg(long)]
pub script_path_lints: Option<PathBuf>, pub script_path_lints: Option<PathBuf>,
/// Do not touch the following files.
#[arg(long)]
pub ignore_file: Vec<PathBuf>
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
@ -116,6 +120,12 @@ impl FromStr for EnvVar {
} }
pub fn minimize(options: Options) -> Result<()> { pub fn minimize(options: Options) -> Result<()> {
for ignore_file in &options.ignore_file {
if !ignore_file.try_exists()? {
warn!("Ignored path {} does not exist", ignore_file.display());
}
}
let build = build::Build::new(&options)?; let build = build::Build::new(&options)?;
let mut minimizer = Minimizer::new_glob_dir(options, build)?; let mut minimizer = Minimizer::new_glob_dir(options, build)?;
@ -162,6 +172,7 @@ impl Default for Options {
passes: None, passes: None,
script_path: None, script_path: None,
script_path_lints: None, script_path_lints: None,
ignore_file: Vec::new(),
} }
} }
} }

View file

@ -79,6 +79,18 @@ impl Minimizer {
} }
}) })
.filter(|entry| entry.path().extension() == Some(OsStr::new("rs"))) .filter(|entry| entry.path().extension() == Some(OsStr::new("rs")))
.filter(|entry| {
if options
.ignore_file
.iter()
.any(|ignored| entry.path().starts_with(ignored))
{
info!("Ignoring file: {}", entry.path().display());
false
} else {
true
}
})
.map(|entry| SourceFile { .map(|entry| SourceFile {
path: entry.into_path(), path: entry.into_path(),
}) })