You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dj...@apache.org on 2022/02/02 02:22:29 UTC

[camel-quarkus] 01/05: fix update script

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

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

commit f1460a9800205c87769f0c85868b3db9910b7d5a
Author: David Jencks <dj...@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 da6177d..bbb3ea3 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
 }