use clap::Parser;
use diagnostic_quick::QResult;
use fs_flatten::FlattenFlies;
use crate::SharedArgs;
use crate::utils::{build_glob_set, resolve_workspace};
#[derive(Parser, Debug, Clone)]
#[command(author, version, about, long_about = None)]
pub struct FsFlatten {
workspace: Option<String>,
#[arg(short, long)]
delete_empty: bool,
#[arg(short, long)]
pattern: Option<String>,
#[arg(long)]
overwrite: bool,
#[clap(flatten)]
other: SharedArgs,
}
impl FsFlatten {
pub fn run(&self) -> QResult {
let ws = resolve_workspace(&self.workspace)?;
let worker = FlattenFlies {
output: ws,
pattern: build_glob_set(&self.pattern)?,
delete_empty: self.delete_empty,
execute: self.other.execute,
overwrite: self.overwrite,
};
worker.run(&worker.output)
}
}