Skip to main content

greentic_bundle/cli/
inspect.rs

1use 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}