Skip to content

Commit a6a649b

Browse files
committed
Postprocess extra generated file
1 parent b86df55 commit a6a649b

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/generator.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,13 @@ impl Generator<'_> {
180180

181181
let out_file = BufWriter::new(File::create(&file_path)?);
182182

183-
self.tpl.render_to_write(ctx, out_file)?;
183+
let state = self.tpl.render_to_write(ctx, out_file)?;
184184

185185
if !self.flags.no_postprocess {
186+
if let Some(extra_generated_file) = state.get_temp("extra_generated_file") {
187+
self.postprocessor
188+
.add_path(Utf8Path::new(extra_generated_file.as_str().unwrap()));
189+
}
186190
self.postprocessor.add_path(&file_path);
187191
}
188192

src/template.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use heck::{
66
ToLowerCamelCase as _, ToShoutySnakeCase as _, ToSnakeCase as _, ToUpperCamelCase as _,
77
};
88
use itertools::Itertools as _;
9-
use minijinja::{path_loader, value::Kwargs, Value};
9+
use minijinja::{path_loader, value::Kwargs, State, Value};
1010

1111
pub(crate) fn env(tpl_dir: &Utf8Path) -> Result<minijinja::Environment<'static>, minijinja::Error> {
1212
let mut env = minijinja::Environment::new();
@@ -146,8 +146,9 @@ pub(crate) fn env(tpl_dir: &Utf8Path) -> Result<minijinja::Environment<'static>,
146146
env.add_function(
147147
// For java lib we need to create extra files.
148148
"generate_extra_file",
149-
|filename: Cow<'_, str>, file_contents: Cow<'_, str>| {
149+
|state: &State, filename: Cow<'_, str>, file_contents: Cow<'_, str>| {
150150
fs::write(&*filename, file_contents.as_bytes()).unwrap();
151+
state.set_temp("extra_generated_file", filename.into());
151152
},
152153
);
153154

0 commit comments

Comments
 (0)