use cargo_files_core::{get_target_files, get_targets, Error};
use clap::Parser;
use std::collections::HashSet;
use std::path::PathBuf;
#[derive(Debug, Parser)]
#[command(author, version, about, long_about = None)]
#[command(
arg(clap::Arg::new("dummy")
.value_parser(["files"])
.required(false)
.hide(true))
)]
struct Args {
#[arg(long)]
manifest_path: Option<PathBuf>,
}
fn main() -> Result<(), Error> {
let args: Args = Args::parse();
let targets = get_targets(args.manifest_path.as_deref())?;
let mut files = HashSet::new();
for target in targets {
files.extend(get_target_files(&target)?);
}
let mut files = files.into_iter().collect::<Vec<_>>();
files.sort();
for file in files {
println!("{}", file.display());
}
Ok(())
}