with type filtering

This commit is contained in:
2023-01-28 20:21:19 +01:00
parent 3eb891422f
commit 2eb5d98c8a
8 changed files with 4763 additions and 4 deletions

30
src/cli_generate.rs Normal file
View File

@@ -0,0 +1,30 @@
use clap::{Arg, ArgMatches};
use crate::{code_generation::CodeGeneration, config::Config, engine::Engine, session::Session};
#[allow(dead_code)]
pub struct GenerateCommand;
#[allow(dead_code)]
impl GenerateCommand {
pub fn new_cmd() -> clap::Command {
clap::Command::new("generate").arg(Arg::new("output").long("output"))
}
pub fn exec(arg_matches: &ArgMatches) -> eyre::Result<()> {
let cfg = Config::default();
let (conn, _proc) = Engine::new().start(&cfg)?;
let session = Session::new();
let req = session.start(&cfg, &conn)?;
let schema = session.schema(req)?;
let code = CodeGeneration::generate(&schema)?;
if let Some(output) = arg_matches.get_one::<String>("output") {
// TODO: Write to file
} else {
println!("{}", code);
}
Ok(())
}
}