forge/cmd/
tree.rs
1use clap::Parser;
2use eyre::Result;
3use foundry_cli::{opts::ProjectPathOpts, utils::LoadConfig};
4use foundry_compilers::{
5 resolver::{parse::SolData, Charset, TreeOptions},
6 Graph,
7};
8
9#[derive(Clone, Debug, Parser)]
11pub struct TreeArgs {
12 #[arg(long)]
14 no_dedupe: bool,
15
16 #[arg(long, default_value = "utf8")]
20 charset: Charset,
21
22 #[command(flatten)]
23 project_paths: ProjectPathOpts,
24}
25
26foundry_config::impl_figment_convert!(TreeArgs, project_paths);
27
28impl TreeArgs {
29 pub fn run(self) -> Result<()> {
30 let config = self.load_config()?;
31 let graph = Graph::<SolData>::resolve(&config.project_paths())?;
32 let opts = TreeOptions { charset: self.charset, no_dedupe: self.no_dedupe };
33 graph.print_with_options(opts);
34
35 Ok(())
36 }
37}