Better reporting of incorrectly formatted data lines
diff --git a/src/main/jbake/templates/downloads.tpl b/src/main/jbake/templates/downloads.tpl
index f7ffb2a..ebf802d 100644
--- a/src/main/jbake/templates/downloads.tpl
+++ b/src/main/jbake/templates/downloads.tpl
@@ -12,6 +12,8 @@
// To convert from the old svn downloads.list ust
// while read l; do echo " \"$l\","; done < content/downloads.list
// ------------------------------------------------------------------------------------------------
+U = new includes.U(config)
+def PIPE_SEP = "\\|"
def launchpadVersion="11"
def slingIDETooling=[
@@ -366,7 +368,7 @@
tbody() {
slingApplication.each { line ->
tr() {
- def data = line.split("\\|")
+ def data = U.splitLine(line, PIPE_SEP, 6)
td(data[0])
td(data[4])
td(){
@@ -388,7 +390,7 @@
tbody() {
slingIDETooling.each { line ->
tr() {
- def data = line.split("\\|")
+ def data = U.splitLine(line, PIPE_SEP, 3)
td(data[0])
td(data[2])
td(data[3])
@@ -407,7 +409,7 @@
tbody() {
bundles.each { line ->
tr() {
- def data = line.split("\\|")
+ def data = U.splitLine(line, PIPE_SEP, 5)
td(data[0])
td(data[2])
def artifact = data[1]
@@ -434,7 +436,7 @@
tbody() {
mavenPlugins.each { line ->
tr() {
- def data = line.split("\\|")
+ def data = U.splitLine(line, PIPE_SEP, 4)
td(data[0])
td(data[2])
def artifact = data[1]
@@ -460,7 +462,7 @@
tbody() {
bndPlugins.each { line ->
tr() {
- def data = line.split("\\|")
+ def data = U.splitLine(line, PIPE_SEP, 4)
td(data[0])
td(data[2])
def artifact = data[1]
@@ -486,7 +488,7 @@
tbody() {
deprecated.each { line ->
tr() {
- def data = line.split("\\|")
+ def data = U.splitLine(line, PIPE_SEP, 4)
td(data[0])
td(data[1])
td(data[3])
diff --git a/src/main/jbake/templates/includes/U.groovy b/src/main/jbake/templates/includes/U.groovy
index bce03c6..9a12901 100644
--- a/src/main/jbake/templates/includes/U.groovy
+++ b/src/main/jbake/templates/includes/U.groovy
@@ -9,6 +9,19 @@
def once = new runonce.OncePerBuild(jbakeConfig)
}
+ def splitLine(line, separator, expectedParts) {
+ def result = line.split(separator)
+ if(result.length < expectedParts) {
+ throw new Exception(
+ "Expected " + expectedParts
+ + " parts separated with " + separator
+ + ", but got " + result.length
+ + " in line: " + line
+ )
+ }
+ return result
+ }
+
def processBody(content, config) {
def str = content.body