helm_schema_cli/cli/
mod.rs1mod chart_args;
2mod crd_args;
3mod diag_args;
4mod emission_args;
5mod inference_args;
6mod k8s_args;
7mod output_args;
8mod perf_args;
9mod profile_args;
10
11use std::path::PathBuf;
12
13use clap::Parser;
14
15pub use chart_args::ChartArgs;
16pub use crd_args::{CrdArgs, CrdVersionLookup};
17pub use diag_args::{DiagArgs, DiagFormat};
18pub use emission_args::{EmissionArgs, PolicyToggle};
19pub use inference_args::InferenceArgs;
20pub use k8s_args::{DEFAULT_AUTO_WINDOW, K8sArgs, K8sVersionFallback};
21pub use output_args::OutputArgs;
22pub use perf_args::PerfArgs;
23pub use profile_args::SchemaProfile;
24
25#[derive(Parser, Debug, Clone)]
27#[command(
28 name = "helm-schema",
29 about = "Generate JSON schema for Helm values.yaml",
30 after_long_help = "EMISSION RETENTION:\n full keeps mandatory facts, root/local ordinary conditionals, terminal clauses,\n and kind partitions.\n lean keeps every mandatory fact and every locally anchored ordinary conditional;\n it drops root-anchored ordinary conditionals, terminal clauses, and kind\n partitions.\n\nMandatory facts cannot be disabled. The four emission override flags only change\nW-class refinements and therefore only widen acceptance when switched off."
31)]
32pub struct Cli {
33 #[arg(value_name = "CHART_DIR")]
35 pub chart_dir: PathBuf,
36
37 #[command(flatten)]
39 pub output: OutputArgs,
40
41 #[command(flatten)]
43 pub k8s: K8sArgs,
44
45 #[command(flatten)]
47 pub crd: CrdArgs,
48
49 #[command(flatten)]
51 pub inference: InferenceArgs,
52
53 #[command(flatten)]
55 pub diag: DiagArgs,
56
57 #[command(flatten)]
59 pub chart: ChartArgs,
60
61 #[command(flatten)]
63 pub perf: PerfArgs,
64
65 #[arg(long, value_name = "PATH", conflicts_with = "no_config")]
68 pub config: Option<PathBuf>,
69
70 #[arg(long, conflicts_with = "config")]
72 pub no_config: bool,
73
74 #[arg(long)]
76 pub print_effective_config: bool,
77
78 #[arg(long, value_enum)]
84 pub profile: Option<SchemaProfile>,
85
86 #[command(flatten)]
88 pub emission: EmissionArgs,
89
90 #[arg(long)]
96 pub override_schema: Vec<PathBuf>,
97}