Skip to main content

greentic_bundle/cli/
export.rs

1use std::path::PathBuf;
2
3use anyhow::Result;
4use clap::Args;
5
6#[derive(Debug, Args)]
7pub struct ExportArgs {
8    #[arg(long, value_name = "DIR", help = "cli.export.build_dir.option")]
9    pub build_dir: PathBuf,
10
11    #[arg(long, value_name = "FILE", help = "cli.export.output.option")]
12    pub output: PathBuf,
13
14    #[arg(long, default_value_t = false, help = "cli.option.dry_run")]
15    pub dry_run: bool,
16
17    /// Embed a precompiled component cache (`.cache/v1/...`) into the bundle.
18    /// Requires `greentic-start` on PATH.
19    #[arg(long, default_value_t = false)]
20    pub warmup: bool,
21}
22
23pub fn run(args: ExportArgs) -> Result<()> {
24    let result =
25        crate::build::export_build_dir(&args.build_dir, &args.output, args.dry_run, args.warmup)?;
26    println!("{}", serde_json::to_string_pretty(&result)?);
27    Ok(())
28}