major rework
This commit is contained in:
78
src/main.rs
78
src/main.rs
@@ -11,10 +11,12 @@ use figment::{
|
||||
};
|
||||
use handlebars::Handlebars;
|
||||
use tokio::{fs, io::AsyncWriteExt, process::Command};
|
||||
use toml_edit::DocumentMut;
|
||||
use tracing_subscriber::{fmt, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
struct Args {
|
||||
#[clap(short, long, default_value = "generator.yml")]
|
||||
#[clap(short, long, default_value = "generator.toml")]
|
||||
config: String,
|
||||
#[clap(short, long, env = "DATABASE_URL")]
|
||||
database_url: String,
|
||||
@@ -23,44 +25,50 @@ struct Args {
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
tracing_subscriber::fmt().init();
|
||||
|
||||
tracing_subscriber::registry()
|
||||
.with(fmt::layer())
|
||||
.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);
|
||||
// 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 = Handlebars::new();
|
||||
templates::register_templates(&mut handlebars, &config).await?;
|
||||
// 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::<DocumentMut>()?;
|
||||
|
||||
let outputs = generator::generate(&args.database_url, &config, &handlebars).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"));
|
||||
}
|
||||
}
|
||||
let outputs = 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(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user