greentic_bundle/cli/
inspect.rs1use std::path::PathBuf;
2
3use anyhow::Result;
4use clap::Args;
5
6#[derive(Debug, Args)]
7pub struct InspectArgs {
8 #[arg(long, default_value = ".", help = "cli.inspect.root.option")]
9 pub root: PathBuf,
10
11 #[arg(long, value_name = "FILE", help = "cli.inspect.artifact.option")]
12 pub artifact: Option<PathBuf>,
13
14 #[arg(long, default_value_t = false, help = "cli.inspect.json.option")]
15 pub json: bool,
16}
17
18impl Default for InspectArgs {
19 fn default() -> Self {
20 Self {
21 root: PathBuf::from("."),
22 artifact: None,
23 json: false,
24 }
25 }
26}
27
28pub fn run(args: InspectArgs) -> Result<()> {
29 let report = if let Some(artifact) = args.artifact.as_deref() {
30 crate::build::inspect_target(None, Some(artifact))?
31 } else {
32 crate::build::inspect_target(Some(&args.root), None)?
33 };
34 let _ = args.json;
35 println!("{}", serde_json::to_string_pretty(&report)?);
36 Ok(())
37}