diff --git a/Cargo.lock b/Cargo.lock index ecee75b..cffddb3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -185,9 +185,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.18" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "shlex", ] @@ -200,9 +200,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.35" +version = "4.5.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "2df961d8c8a0d08aa9945718ccf584145eee3f3aa06cddbeac12933781102e04" dependencies = [ "clap_builder", "clap_derive", @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "132dbda40fb6753878316a489d5a1242a8ef2f0d9e47ba01c951ea8aa7d013a5" dependencies = [ "anstream", "anstyle", @@ -1071,9 +1071,9 @@ checksum = "29fc123b2f6600099ca18248f69e3ee02b09c4188c0d98e9a690d90dec3e408a" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -1540,9 +1540,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sea-orm-codegen" -version = "1.1.8" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fc7ff538b0fef5061e52f8a67ddf41f866d12e64115df6fda753b334d6d88e" +checksum = "cf05ea0808639cc78769a8459b475dcb6ae642366b5df84612914efa089be3a2" dependencies = [ "heck 0.4.1", "proc-macro2", @@ -1573,7 +1573,7 @@ dependencies = [ "sea-orm-codegen", "sea-schema", "serde", - "serde-inline-default", + "serde_merge", "sqlx", "syn", "tokio", @@ -1615,7 +1615,7 @@ dependencies = [ "proc-macro2", "quote", "syn", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1645,9 +1645,9 @@ dependencies = [ [[package]] name = "self_cell" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" +checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" [[package]] name = "serde" @@ -1658,17 +1658,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-inline-default" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fb1bedd774187d304179493b0d3c41fbe97b04b14305363f68d2bdf5e47cb9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "serde_derive" version = "1.0.219" @@ -1692,6 +1681,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_merge" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "606e91878516232ac3b16c12e063d4468d762f16d77e7aef14a1f2326c5f409b" +dependencies = [ + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "serde_spanned" version = "0.6.8" @@ -1839,9 +1839,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" +checksum = "14e22987355fbf8cfb813a0cf8cd97b1b4ec834b94dbd759a9e8679d41fabe83" dependencies = [ "sqlx-core", "sqlx-macros", @@ -1852,10 +1852,11 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" +checksum = "55c4720d7d4cd3d5b00f61d03751c685ad09c33ae8290c8a2c11335e0604300b" dependencies = [ + "base64", "bytes", "crc", "crossbeam-queue", @@ -1876,7 +1877,7 @@ dependencies = [ "serde_json", "sha2", "smallvec", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -1885,9 +1886,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" +checksum = "175147fcb75f353ac7675509bc58abb2cb291caf0fd24a3623b8f7e3eb0a754b" dependencies = [ "proc-macro2", "quote", @@ -1898,9 +1899,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" +checksum = "1cde983058e53bfa75998e1982086c5efe3c370f3250bf0357e344fa3352e32b" dependencies = [ "dotenvy", "either", @@ -1924,9 +1925,9 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" +checksum = "847d2e5393a4f39e47e4f36cab419709bc2b83cbe4223c60e86e1471655be333" dependencies = [ "atoi", "base64", @@ -1959,16 +1960,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 2.0.12", "tracing", "whoami", ] [[package]] name = "sqlx-postgres" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" +checksum = "cc35947a541b9e0a2e3d85da444f1c4137c13040267141b208395a0d0ca4659f" dependencies = [ "atoi", "base64", @@ -1996,16 +1997,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 2.0.12", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" +checksum = "6c48291dac4e5ed32da0927a0b981788be65674aeb62666d19873ab4289febde" dependencies = [ "atoi", "flume", @@ -2020,6 +2021,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", + "thiserror 2.0.12", "tracing", "url", ] @@ -2088,13 +2090,33 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + [[package]] name = "thiserror" version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8c80df7..03d558a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ quote = "1.0.40" sea-orm-codegen = "1.1.8" sea-schema = { version = "0.16.1", features = ["sqlx-all"] } serde = { version = "1.0.219", features = ["derive"] } -serde-inline-default = "0.2.3" +serde_merge = "0.1.3" sqlx = { version = "0.8.3", features = ["mysql", "postgres", "sqlite", "runtime-tokio"] } syn = { version = "2.0.100", features = ["extra-traits", "full"] } tokio = { version = "1.44.1", features = ["full"] } diff --git a/generator.toml b/generator.toml index 1ea48e0..9d0bd6a 100644 --- a/generator.toml +++ b/generator.toml @@ -15,5 +15,5 @@ enable = true prelude = true path = "./tests/src/models" -# [modules.annotate] -# enable = true +[modules.annotate] +enable = true diff --git a/src/generator/modules/annotate/mod.rs b/src/generator/modules/annotate/mod.rs index 1f67661..d151bd0 100644 --- a/src/generator/modules/annotate/mod.rs +++ b/src/generator/modules/annotate/mod.rs @@ -33,7 +33,6 @@ impl Module for AnnotateModule { { Ok(config.enable) } else { - // One or both keys are missing Ok(false) } } diff --git a/src/generator/modules/templates/mod.rs b/src/generator/modules/templates/mod.rs index e7c4ff5..393ed92 100644 --- a/src/generator/modules/templates/mod.rs +++ b/src/generator/modules/templates/mod.rs @@ -115,9 +115,6 @@ impl Module for TemplateModule { tracing::debug!(?template, ?path, "Registering template"); let content = fs::read_to_string(path).await?; env.add_template_owned(template, content)?; - // registry - // .register_template_string(templates.as_str(), content) - // .map_err(|_| eyre!("Failed to register template"))?; } Self::register_default_templates(TEMPLATE_DIR.entries(), &mut env).await?; } @@ -165,43 +162,3 @@ impl TemplateModule { Ok(()) } } - -#[cfg(test)] -mod test { - // #[test] - // fn test_map_string() { - // use super::MapString; - // let map = MapString::Map( - // vec![ - // ("a".to_string(), MapString::PathBuf("b".to_string())), - // ("c".to_string(), MapString::PathBuf("d".to_string())), - // ( - // "e".to_string(), - // MapString::Map( - // vec![("f".to_string(), MapString::String("g".to_string()))] - // .into_iter() - // .collect(), - // ), - // ), - // ] - // .into_iter() - // .collect(), - // ); - // let paths = map.into_paths("".to_string()); - // assert_eq!( - // paths, - // vec![ - // ("a".to_string(), "b".to_string()), - // ("c".to_string(), "d".to_string()), - // ("e.f".to_string(), "g".to_string()) - // ] - // ); - // } - // #[test] - // fn test_map_string2() { - // use super::MapString; - // let map = MapString::String("a".to_string()); - // let paths = map.to_paths(); - // assert_eq!(paths, vec!["a"]); - // } -} diff --git a/src/main.rs b/src/main.rs index 737a9e2..a589aec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,9 @@ // mod config; mod generator; -mod templates; use clap::Parser; -use color_eyre::{eyre::eyre, Result}; -use tokio::{fs, io::AsyncWriteExt, process::Command}; +use color_eyre::Result; +use tokio::fs; use toml_edit::DocumentMut; use tracing_subscriber::{fmt, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter}; @@ -25,44 +24,11 @@ async fn main() -> Result<()> { .with(EnvFilter::from_default_env()) .init(); let args = Args::parse(); - - // let config: Config = Figment::new() - // .merge(Serialized::defaults(Config::default())) - // .merge(Yaml::file(&args.config)) - // .extract()?; - // tracing::info!(?config); tracing::info!(?args); - // let mut handlebars: Registry = ; - // templates::register_templates(&mut handlebars, &config).await?; let config = fs::read_to_string(args.config).await?; let root_config = config.parse::()?; generator::generate(&args.database_url, root_config).await?; - // - // // tracing::info!(?outputs, "Generated files"); - // for output in outputs.iter() { - // tracing::info!(?output, "Generated chunk"); - // // let mut file = fs::File::create(&output.path).await?; - // // file.write_all(output.content.as_bytes()).await?; - // } - // - // let merged_outputs = generator::file::combine_chunks(outputs)?; - // for output in merged_outputs.iter() { - // tracing::info!(?output.path, "Merged file"); - // let parent = output.path.parent().unwrap(); - // if !parent.exists() { - // fs::create_dir_all(parent).await?; - // } - // let mut file = fs::File::create(&output.path).await?; - // file.write_all(output.content.as_bytes()).await?; - // } - // for output in merged_outputs.iter() { - // tracing::info!(?output.path, "Running rustfmt"); - // let exit_status = Command::new("rustfmt").arg(&output.path).status().await?; - // if !exit_status.success() { - // return Err(eyre!("Failed to run rustfmt")); - // } - // } Ok(()) } diff --git a/src/templates.rs b/src/templates.rs deleted file mode 100644 index fd2beeb..0000000 --- a/src/templates.rs +++ /dev/null @@ -1,27 +0,0 @@ -use color_eyre::eyre::{ContextCompat, Result}; -use std::path::PathBuf; -use tokio::fs; - -// static TEMPLATE_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/templates"); - -// pub async fn register_templates(handlebars: &mut Handlebars<'_>, config: &Config) -> Result<()> { -// // if let Some(templates) = &config.templates { -// // for (name, value) in templates.iter() { -// // let Value::String(name) = name else { -// // return Err(color_eyre::eyre::eyre!("Invalid template name")); -// // }; -// // let Value::String(path) = value else { -// // return Err(color_eyre::eyre::eyre!("Invalid template value")); -// // }; -// // let mut path = PathBuf::from(path); -// // if let Some(templates_dir) = &config.templates_dir { -// // path = templates_dir.join(path); -// // } -// // tracing::info!(?name, ?path, "Registering template"); -// // let content = fs::read_to_string(path).await?; -// // handlebars.register_template_string(name, content)?; -// // } -// // } -// handle_direntries(TEMPLATE_DIR.entries(), handlebars).await?; -// Ok(()) -// } diff --git a/tests/src/models/_entities/mod.rs b/tests/src/models/_entities/mod.rs index a06c966..031ba48 100644 --- a/tests/src/models/_entities/mod.rs +++ b/tests/src/models/_entities/mod.rs @@ -1,3 +1,3 @@ -//! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.8 +//! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.10 pub mod user ; \ No newline at end of file diff --git a/tests/src/models/_entities/user.rs b/tests/src/models/_entities/user.rs index f2f3243..97ee8a3 100644 --- a/tests/src/models/_entities/user.rs +++ b/tests/src/models/_entities/user.rs @@ -1,4 +1,4 @@ -//! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.8 +//! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.10