aboutsummaryrefslogtreecommitdiff
path: root/buildScripts/src/lombok/website
diff options
context:
space:
mode:
Diffstat (limited to 'buildScripts/src/lombok/website')
-rw-r--r--buildScripts/src/lombok/website/CompileChangelog.java36
1 files changed, 32 insertions, 4 deletions
diff --git a/buildScripts/src/lombok/website/CompileChangelog.java b/buildScripts/src/lombok/website/CompileChangelog.java
index 2508f237..60b70aa3 100644
--- a/buildScripts/src/lombok/website/CompileChangelog.java
+++ b/buildScripts/src/lombok/website/CompileChangelog.java
@@ -4,12 +4,20 @@ import com.petebevin.markdown.MarkdownProcessor;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class CompileChangelog {
public static void main(String[] args) {
+ String fileIn = args[0];
+ String fileOut = args[1];
+ boolean edge = args.length > 3 && "-edge".equals(args[2]);
+ String version = edge ? args[3] : null;
+
try {
- FileInputStream in = new FileInputStream(args[0]);
+ FileInputStream in = new FileInputStream(fileIn);
ByteArrayOutputStream out = new ByteArrayOutputStream();
+
byte[] b = new byte[65536];
while (true) {
int r = in.read(b);
@@ -18,9 +26,11 @@ public class CompileChangelog {
}
in.close();
String markdown = new String(out.toByteArray(), "UTF-8");
- String html = new MarkdownProcessor().markdown(markdown);
- FileOutputStream file = new FileOutputStream(args[1]);
- file.write(html.getBytes("UTF-8"));
+
+ String result = edge ? buildEdge(markdown, version) : build(markdown);
+
+ FileOutputStream file = new FileOutputStream(fileOut);
+ file.write(result.getBytes("UTF-8"));
file.close();
System.exit(0);
} catch (Throwable e) {
@@ -28,4 +38,22 @@ public class CompileChangelog {
System.exit(1);
}
}
+
+ private static String build(String markdown) {
+ return new MarkdownProcessor().markdown(markdown);
+ }
+
+ private static final Pattern LAST_CHANGELOG = Pattern.compile(
+ "^.*### v$", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
+ private static String buildEdge(String markdown, String version) {
+ if (version.toUpperCase().endsWith("-HEAD") || version.toUpperCase().endsWith("-EDGE")) {
+ version = version.substring(0, version.length() - 5);
+ }
+
+ Pattern p = Pattern.compile(
+ "(?is-m)^.*###\\s*v" + version + ".*?\n(.*?)(?:###\\s*v.*)?$");
+ Matcher m = p.matcher(markdown);
+ String subMarkdown = m.matches() ? m.group(1) : "* No changelog records for this edge release.";
+ return new MarkdownProcessor().markdown(subMarkdown);
+ }
}