Made blog, email etc. templates parametrizable; fixes gh-100

This commit is contained in:
Marcin Grzejszczak
2018-10-16 18:34:02 +02:00
parent e7fffd37ba
commit 1f7edff29f
8 changed files with 43 additions and 135 deletions

View File

@@ -53,6 +53,8 @@ public class ReleaserProperties implements Serializable {
private Sagan sagan = new Sagan();
private Template template = new Template();
/**
* Project name to its version - overrides all versions
* retrieved from a repository like Spring Cloud Release
@@ -485,6 +487,28 @@ public class ReleaserProperties implements Serializable {
}
}
public static class Template implements Serializable {
/**
* Folder in which blog, email etc. templates are stored
*/
private String templateFolder = "cloud";
public String getTemplateFolder() {
return this.templateFolder;
}
public void setTemplateFolder(String templateFolder) {
this.templateFolder = templateFolder;
}
@Override
public String toString() {
return "Template{" +
"templateFolder='" + this.templateFolder + '\'' +
'}';
}
}
public String getWorkingDir() {
return StringUtils.hasText(this.workingDir) ?
this.workingDir : System.getProperty("user.dir");
@@ -550,11 +574,19 @@ public class ReleaserProperties implements Serializable {
this.sagan = sagan;
}
public Template getTemplate() {
return this.template;
}
public void setTemplate(Template template) {
this.template = template;
}
@Override public String toString() {
return "ReleaserProperties{" + "workingDir='" + this.workingDir + '\'' + ", git=" + this.git
+ ", pom=" + this.pom + ", maven=" + this.maven + ", gradle=" + this.gradle + ", sagan="
+ this.sagan + ", fixedVersions=" + this.fixedVersions + ", metaRelease="
+ this.metaRelease + '}';
+ this.metaRelease + ", template=" + this.template + '}';
}
public ReleaserProperties copy() {

View File

@@ -102,7 +102,8 @@ public class TemplateGenerator implements ReleaserPropertiesAware {
private Template template(String template) {
try {
Handlebars handlebars = new Handlebars(new ClassPathTemplateLoader("/templates"));
Handlebars handlebars = new Handlebars(new ClassPathTemplateLoader("/templates/" +
this.props.getTemplate().getTemplateFolder()));
handlebars.registerHelper("replace", StringHelpers.replace);
handlebars.registerHelper("capitalizeFirst", StringHelpers.capitalizeFirst);
return handlebars.compile(template);