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