JAL-4111 Fixed channel.props to allow replacement of __SUFFIX__. Generic background...
[jalview.git] / build.gradle
index 4f9798c..e6b7e33 100644 (file)
@@ -9,6 +9,7 @@ import org.gradle.util.ConfigureUtil
 import org.gradle.plugins.ide.eclipse.model.Output
 import org.gradle.plugins.ide.eclipse.model.Library
 import java.security.MessageDigest
+import java.util.regex.Matcher
 import groovy.transform.ExternalizeMethods
 import groovy.util.XmlParser
 import groovy.xml.XmlUtil
@@ -108,8 +109,13 @@ ext {
   getdownChannelName = CHANNEL.toLowerCase()
   // default to "default". Currently only has different cosmetics for "develop", "release", "default"
   propertiesChannelName = ["develop", "release", "test-release", "jalviewjs", "jalviewjs-release" ].contains(getdownChannelName) ? getdownChannelName : "default"
+  channelDirName = propertiesChannelName
   // Import channel_properties
-  channelDir = string("${jalviewDir}/${channel_properties_dir}/${propertiesChannelName}")
+  if (getdownChannelName.startsWith("develop-")) {
+    channelDirName = "develop-SUFFIX"
+    println("SET propertiesChannelName to '${propertiesChannelName}'")
+  }
+  channelDir = string("${jalviewDir}/${channel_properties_dir}/${channelDirName}")
   channelGradleProperties = string("${channelDir}/channel_gradle.properties")
   channelPropsFile = string("${channelDir}/${resource_dir}/${channel_props}")
   overrideProperties(channelGradleProperties, false)
@@ -198,6 +204,7 @@ ext {
   testSourceDir = useClover ? cloverTestInstrDir : testDir
   testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}"
 
+  channelSuffix = null
   getdownChannelDir = string("${getdown_website_dir}/${propertiesChannelName}")
   getdownAppBaseDir = string("${jalviewDir}/${getdownChannelDir}/${JAVA_VERSION}")
   getdownArchiveDir = string("${jalviewDir}/${getdown_archive_dir}")
@@ -287,6 +294,22 @@ ext {
     install4jExtraScheme = "jalviewa"
     break
 
+    case ~/^DEVELOP-([\.\-\w]*)$/:
+    def suffix = Matcher.lastMatcher[0][1]
+    reportRsyncCommand = true
+    getdownSetAppBaseProperty = true
+    JALVIEW_VERSION=JALVIEW_VERSION+"-d${suffix}-${buildDate}"
+    install4jSuffix = "Develop ${suffix}"
+    install4jExtraScheme = "jalviewd"
+    install4jInstallerName = "${jalview_name} Develop ${suffix} Installer"
+    getdownChannelName = string("develop-${suffix}")
+    getdownChannelDir = string("${getdown_website_dir}/${getdownChannelName}")
+    getdownAppBaseDir = string("${jalviewDir}/${getdownChannelDir}/${JAVA_VERSION}")
+    getdownDir = string("${getdownChannelName}/${JAVA_VERSION}")
+    getdownAppBase = string("${getdown_channel_base}/${getdownDir}")
+    channelSuffix = string(suffix)
+    break
+
     case "DEVELOP":
     reportRsyncCommand = true
     getdownSetAppBaseProperty = true
@@ -1561,6 +1584,7 @@ task releasesTemplates {
       whatsnewHtml = whatsnewTemplateFile.text.replaceAll("__WHATS_NEW__", whatsnewHtml)
       whatsnewHtmlFile.text = hugoTemplateSubstitutions(whatsnewHtml,
         [
+            VERSION: JALVIEW_VERSION,
           DISPLAY_DATE: wnDisplayDate
         ]
       )
@@ -1618,7 +1642,19 @@ task copyChannelResources(type: Copy) {
 
   def inputDir = "${channelDir}/${resource_dir}"
   def outputDir = resourcesBuildDir
-  from inputDir
+  from(inputDir) {
+    include(channel_props)
+    filter(ReplaceTokens,
+      beginToken: '__',
+      endToken: '__',
+      tokens: [
+        'SUFFIX': channelSuffix
+      ]
+    )
+  }
+  from(inputDir) {
+    exclude(channel_props)
+  }
   into outputDir
 
   inputs.dir(inputDir)
@@ -1639,6 +1675,7 @@ task createBuildProperties(type: WriteProperties) {
   property "BUILD_DATE", getDate("HH:mm:ss dd MMMM yyyy")
   property "VERSION", JALVIEW_VERSION
   property "INSTALLATION", INSTALLATION+" git-commit:"+gitHash+" ["+gitBranch+"]"
+  property "JAVA_COMPILE_VERSION", JAVA_INTEGER_VERSION
   if (getdownSetAppBaseProperty) {
     property "GETDOWNAPPBASE", getdownAppBase
     property "GETDOWNAPPDISTDIR", getdownAppDistDir
@@ -1895,6 +1932,13 @@ task getdownWebsite() {
 
     copy {
       from channelPropsFile
+      filter(ReplaceTokens,
+        beginToken: '__',
+        endToken: '__',
+        tokens: [
+          'SUFFIX': channelSuffix
+        ]
+      )
       into getdownAppBaseDir
     }
     getdownWebsiteResourceFilenames += file(channelPropsFile).getName()