git.iko.soy/opencode-android
on aed5cef help sign in
40 lines 891 B history raw
1use std::path::PathBuf;
3use clap::{Parser, ValueEnum};
4use crux_core::type_generation::facet::{Config, TypeRegistry};
5use shared::OpencodeApp;
7#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)]
8enum Language {
9 Kotlin,
12#[derive(Parser)]
13#[command(version, about, long_about = None)]
14struct Args {
15 #[arg(short, long, value_enum)]
16 language: Language,
17 #[arg(short, long)]
18 output_dir: PathBuf,
21fn main() -> anyhow::Result<()> {
22 let args = Args::parse();
24 let typegen_app = TypeRegistry::new()
25 .register_app::<OpencodeApp>()?
26 .build()?;
28 let name = match args.language {
29 Language::Kotlin => "soy.iko.opencode.core",
30 };
31 let config = Config::builder(name, &args.output_dir).build();
33 match args.language {
34 Language::Kotlin => {
35 typegen_app.kotlin(&config)?;
36 }
37 }
39 Ok(())