This is an automated email from the ASF dual-hosted git repository.

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new 3230702  fix update script
3230702 is described below

commit 32307021344af2b16a433553dd7d5d48b6a268eb
Author: David Jencks <djen...@apache.org>
AuthorDate: Mon Jan 31 15:36:52 2022 -0800

    fix update script
---
 docs/pom.xml                                |  1 +
 tooling/scripts/update-antora-config.groovy |  8 ----
 tooling/scripts/update-antora-yaml.groovy   | 58 ++++++++++++++++++++++-------
 3 files changed, 45 insertions(+), 22 deletions(-)

diff --git a/docs/pom.xml b/docs/pom.xml
index cf74fd5..75ec8be 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -45,6 +45,7 @@
                         <phase>validate</phase>
                         <configuration>
                             
<source>file://${maven.multiModuleProjectDirectory}/tooling/scripts/update-antora-config.groovy</source>
+                            
<source>file://${maven.multiModuleProjectDirectory}/tooling/scripts/update-antora-yaml.groovy</source>
                             <properties>
                                 
<maven.multiModuleProjectDirectory>${maven.multiModuleProjectDirectory}</maven.multiModuleProjectDirectory>
                             </properties>
diff --git a/tooling/scripts/update-antora-config.groovy 
b/tooling/scripts/update-antora-config.groovy
index a9340cd..109c9cc 100644
--- a/tooling/scripts/update-antora-config.groovy
+++ b/tooling/scripts/update-antora-config.groovy
@@ -57,14 +57,6 @@ replaceInFiles.each { path ->
         m.appendTail(newContent)
         String newContentString = newContent.toString()
 
-        // This can only work on main branch or during a release. Otherwise it 
will break antora.yml.
-        if (path.getFileName().toString().equals('antora.yml')) {
-            final String versionReplacement = 'version: ' + 
(project.version.endsWith('-SNAPSHOT') ? 'next' : project.version)
-            println ' - setting '+ versionReplacement
-            final Pattern versionPattern = ~'version: [^\\s]+'
-            newContentString = 
versionPattern.matcher(newContentString).replaceFirst(versionReplacement)
-        }
-
         if (!newContentString.equals(content)) {
             println 'Updated ' + path
             Files.write(path, newContentString.getBytes('UTF-8'))
diff --git a/tooling/scripts/update-antora-yaml.groovy 
b/tooling/scripts/update-antora-yaml.groovy
index e7dba01..858b7d8 100644
--- a/tooling/scripts/update-antora-yaml.groovy
+++ b/tooling/scripts/update-antora-yaml.groovy
@@ -16,31 +16,61 @@
  */
 
 /**
- * Replace property values (defined in pom.xml files) in Antora yaml config
+ * Update the version in antora.yml
  */
 import java.nio.file.Path
 import java.nio.file.Paths
 import java.nio.file.Files
-import java.util.stream.Stream
-import java.util.stream.Collectors
 import java.util.regex.Pattern
 import java.util.regex.Matcher
 
+final String PROJECT_BRANCH_ROOT = ''
 
 final Path treeRootDir = 
Paths.get(properties['maven.multiModuleProjectDirectory'])
 
-final Path path = treeRootDir.resolve('docs/antora.yml')
+final Path antoraYmlPath = treeRootDir.resolve('docs/antora.yml')
+final Path sourceMapPath = treeRootDir.resolve('docs/source-map.yml')
 
-println 'Updating ' + path
-final String content = path.getText('UTF-8')
-final String versionReplacement = 'version: ' + 
(project.version.endsWith('-SNAPSHOT') ? 'latest' : project.version)
-println ' - seting '+ versionReplacement
-final Pattern versionPattern = ~'version: [^\\s]+'
-final String newContentString = 
versionPattern.matcher(content).replaceFirst(versionReplacement)
+println 'Examining ' + antoraYmlPath
+final String antoraYmlContent = antoraYmlPath.getText('UTF-8')
+final Pattern versionPattern = ~'version: ([^\\s]+)'
+final Matcher versionMatcher = versionPattern.matcher(antoraYmlContent)
+if (versionMatcher.find()) {
+    final String originalVersion = versionMatcher.group(1)
+    if (originalVersion.equals('next') && 
!project.version.endsWith('-SNAPSHOT')) {
+        final String docVersion = project.version.substring(0, 
project.version.lastIndexOf('.') + 1) + 'x'
+        final String versionReplacement = 'version: ' + docVersion
 
-if (!newContentString.equals(content)) {
-    println 'Updated ' + path
-    Files.write(path, newContentString.getBytes('UTF-8'))
+        String newContentString = 
versionMatcher.replaceFirst(versionReplacement)
+
+        final Pattern removePattern = ~'(display-version: [^\\n]+\\n)|([ 
\\t]*prerelease: [^\\s]+\\n)'
+        final Matcher removeMatcher = removePattern.matcher(newContentString)
+        newContentString = removeMatcher.replaceAll('')
+
+        println ' - setting ' + versionReplacement + ' in ' + antoraYmlPath
+
+        Files.write(antoraYmlPath, newContentString.getBytes('UTF-8'))
+
+        final String sourceMapContent = sourceMapPath.getText('UTF-8')
+        final Pattern branchPattern = ~'([ \\t]*- branch: )([^\\s]+)'
+        final Matcher branchMatcher = branchPattern.matcher(sourceMapContent)
+        if (branchMatcher.find()) {
+            final String originalBranch = branchMatcher.group(2)
+            if ('main'.equals(originalBranch)) {
+                final String newBranch = PROJECT_BRANCH_ROOT + docVersion
+                final String branchReplacement = branchMatcher.group(1) + 
newBranch
+                final String newSourceMapContent = 
branchMatcher.replaceFirst(branchReplacement)
+
+                println ' - setting ' + branchReplacement + ' in ' + 
sourceMapPath
+
+                Files.write(sourceMapPath, 
newSourceMapContent.getBytes('UTF-8'))
+            }
+        } else {
+            println 'expected branch not found in ' + sourceMapPath + ': 
please examine!'
+        }
+   } else {
+        println 'Version is already correct in ' + antoraYmlPath
+    }
 } else {
-    println 'No change in ' + path
+    println 'No version found in ' + antoraYmlPath
 }

Reply via email to