summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/site/templates/ghreleasenotes.awk66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/site/templates/ghreleasenotes.awk b/src/site/templates/ghreleasenotes.awk
new file mode 100755
index 00000000..f4479552
--- /dev/null
+++ b/src/site/templates/ghreleasenotes.awk
@@ -0,0 +1,66 @@
+#! /usr/bin/env awk -f
+
+BEGIN { on=0 ; skip=1 ; block=0 ; section=""}
+
+/^[[:blank:]]*id:/ { relId = $NF }
+
+/r[0-9]+: *{/ { on=1 ; next }
+/^[[:blank:]]*}[[:blank:]]*$/ { if (on) {
+ print "[Full release notes on gitblit.com](http://gitblit.com/releases.html#" relId ")"
+ exit 0
+ }
+ }
+
+
+on==1 && /^[[:blank:]]*[[:alnum:]]+:[[:blank:]]*(''|~)?$/ {
+ if (!block) {
+ skip=1
+ if (section == "fixes:" || section == "changes:" || section == "additions:") { printf "\n</details>\n"}
+ if (section != "") print ""
+ if (section == "note:") print "----------"
+ section = ""
+ if ($NF == "~") next
+ }
+ else {
+ printSection()
+ next
+ }
+ if ($NF == "''") {
+ block = !block
+ }
+ }
+on==1 && /^[[:blank:]]*note:/ { skip=0 ; section=$1; print "### Update Note" ; printSingleLineSection() ; next }
+on==1 && /^[[:blank:]]*text:/ { skip=0 ; section=$1; printf "\n\n"; printSingleLineSection() ; next }
+on==1 && /^[[:blank:]]*security:/ { skip=0 ; section=$1; print "### *Security*" ; next }
+on==1 && /^[[:blank:]]*fixes:/ { skip=0 ; section=$1; printf "<details><summary>Fixes</summary>\n\n### Fixes\n" ; next}
+on==1 && /^[[:blank:]]*changes:/ { skip=0 ; section=$1; printf "<details><summary>Changes</summary>\n\n### Changes\n" ; next}
+on==1 && /^[[:blank:]]*additions:/ { skip=0 ; section=$1; printf "<details><summary>Additions</summary>\n\n### Additions\n" ; next}
+
+on==1 {
+ if ($1 == "''") {
+ block = !block
+ next
+ }
+ if ((block || !skip)) {
+ printSection()
+ }
+ }
+
+function printSingleLineSection()
+{
+ if (NF>1 && $2 != "''" && $2 != "~") {
+ if (protect) gsub(/'/, "'\\''")
+ for (i=2; i<= NF; i++) printf "%s ", $i
+ print ""
+ }
+}
+
+function printSection()
+{
+ if (section != "text:") sub(/[[:blank:]]+/, "")
+ gsub(/pr-/, "PR #")
+ gsub(/issue-/, "issue #")
+ gsub(/commit-/, "commit ")
+ if (protect) gsub(/'/, "'\\''")
+ print $0
+} \ No newline at end of file