|
1 | | -use std::{io::BufWriter, str::FromStr}; |
| 1 | +use std::str::FromStr; |
2 | 2 |
|
3 | 3 | use anyhow::{Context as _, bail}; |
4 | 4 | use camino::{Utf8Path, Utf8PathBuf}; |
5 | | -use fs_err::{self as fs, File}; |
| 5 | +use fs_err as fs; |
6 | 6 | use heck::{ToLowerCamelCase, ToSnakeCase as _, ToUpperCamelCase as _}; |
7 | 7 | use minijinja::{Template, context}; |
8 | 8 | use serde::Deserialize; |
@@ -184,12 +184,15 @@ impl Generator<'_> { |
184 | 184 | (None, _) => "summary".to_owned(), |
185 | 185 | }; |
186 | 186 |
|
187 | | - let file_path = self.output_dir.join(format!("{basename}.{tpl_file_ext}")); |
188 | | - generated_paths.push(file_path.clone()); |
| 187 | + let (rendered_data, state) = self.tpl.render_and_return_state(ctx)?; |
189 | 188 |
|
190 | | - let out_file = BufWriter::new(File::create(&file_path)?); |
| 189 | + let file_path = match state.get_temp("summary_filename") { |
| 190 | + Some(summary_filename) => self.output_dir.join(summary_filename.as_str().unwrap()), |
| 191 | + None => self.output_dir.join(format!("{basename}.{tpl_file_ext}")), |
| 192 | + }; |
191 | 193 |
|
192 | | - let state = self.tpl.render_to_write(ctx, out_file)?; |
| 194 | + generated_paths.push(file_path.clone()); |
| 195 | + fs::write(&file_path, rendered_data)?; |
193 | 196 |
|
194 | 197 | if let Some(extra_generated_file) = state.get_temp("extra_generated_file") { |
195 | 198 | let extra_generated_filepath = |
|
0 commit comments