use crate::cli::generate;
use crate::Result;
use miette::IntoDiagnostic;
use std::path::PathBuf;
#[derive(clap::Args)]
#[clap()]
pub struct Json {
#[clap(short, long)]
file: Option<PathBuf>,
#[clap(long, required_unless_present = "file", overrides_with = "file")]
spec: Option<String>,
}
impl Json {
pub fn run(&self) -> Result<()> {
let spec = generate::file_or_spec(&self.file, &self.spec)?;
let json = serde_json::to_string_pretty(&spec).into_diagnostic()?;
println!("{json}");
Ok(())
}
}