package io.trygvis.rules.engine; import ch.qos.logback.core.util.FileUtil; import com.hubspot.jinjava.Jinjava; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Map; public class TemplateEngine { private final Jinjava jinjava = new Jinjava(); private final File basedir; public TemplateEngine(File basedir) { this.basedir = basedir; } public void clean() { try { System.out.println("Cleaning gen!"); FileUtils.deleteDirectory(basedir); } catch (IOException e) { throw new RuntimeException(e); } } public void template(String name, String output, Map params) throws IOException { var template = Files.readString(Path.of("j2", name + ".j2")); String renderedTemplate = jinjava.render(template, params); var f = new File(basedir, output); FileUtil.createMissingParentDirectories(f); Files.writeString(f.toPath(), renderedTemplate); } }