Skip to content

Commit 20971eb

Browse files
committed
Add function to allow overriding the summary filename
1 parent 3b8e1d2 commit 20971eb

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

src/generator.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
use std::{io::BufWriter, str::FromStr};
1+
use std::str::FromStr;
22

33
use anyhow::{Context as _, bail};
44
use camino::{Utf8Path, Utf8PathBuf};
5-
use fs_err::{self as fs, File};
5+
use fs_err as fs;
66
use heck::{ToLowerCamelCase, ToSnakeCase as _, ToUpperCamelCase as _};
77
use minijinja::{Template, context};
88
use serde::Deserialize;
@@ -184,12 +184,15 @@ impl Generator<'_> {
184184
(None, _) => "summary".to_owned(),
185185
};
186186

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)?;
189188

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+
};
191193

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)?;
193196

194197
if let Some(extra_generated_file) = state.get_temp("extra_generated_file") {
195198
let extra_generated_filepath =

src/template.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,14 @@ pub(crate) fn env(tpl_dir: &Utf8Path) -> Result<minijinja::Environment<'static>,
176176
},
177177
);
178178

179+
env.add_function(
180+
// allows overriding the summary filename
181+
"set_summary_filename",
182+
|state: &State, filename: Cow<'_, str>| {
183+
state.set_temp("summary_filename", filename.into());
184+
},
185+
);
186+
179187
env.add_function(
180188
// For java lib we need to create extra files.
181189
"generate_extra_file",

0 commit comments

Comments
 (0)