use anyhow::Result;
use clap::{Parser, ValueEnum};
use std::fs;
#[derive(Debug, Clone, ValueEnum)]
pub enum CatalogFormat {
Json,
}
#[derive(Debug, Parser)]
pub struct CatalogArgs {
#[arg(long, value_enum, default_value_t = CatalogFormat::Json)]
pub format: CatalogFormat,
}
pub fn run(args: CatalogArgs) -> Result<()> {
let catalog_path = std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
.join("../portaki-sdk/sdui_primitives.json");
let text = fs::read_to_string(&catalog_path).unwrap_or_else(|_| "[]".to_string());
match args.format {
CatalogFormat::Json => {
let value: serde_json::Value = serde_json::from_str(&text)?;
println!("{}", serde_json::to_string_pretty(&value)?);
}
}
Ok(())
}