X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=8bf9f785313f472cae8b326bed06aed7f5787d79;hb=32504ac62e27ce8849ab331a10b7cc3d0c2322b2;hp=cee3ed8f6221792262b61728c79d2953aeee641e;hpb=eeb81bb516522a6a3fa4e246fc79ffddcc53bc67;p=jalview.git diff --git a/build.gradle b/build.gradle index cee3ed8..8bf9f78 100644 --- a/build.gradle +++ b/build.gradle @@ -190,12 +190,17 @@ ext { testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}" getdownWebsiteDir = string("${jalviewDir}/${getdown_website_dir}/${JAVA_VERSION}") + getdownArchiveDir = string("${jalviewDir}/${getdown_archive_dir}") + getdownFullArchiveDir = null + getdownTextLines = [] + getdownLaunchJvl = null buildDist = true buildProperties = null // the following values might be overridden by the CHANNEL switch getdownDir = string("${getdownChannelName}/${JAVA_VERSION}") getdownAppBase = string("${getdown_channel_base}/${getdownDir}") + getdownArchiveAppBase = null getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}") getdownAppDistDir = getdown_app_dir_alt getdownImagesDir = string("${jalviewDir}/${getdown_images_dir}") @@ -229,9 +234,11 @@ ext { case [ "RELEASE", "JALVIEWJS-RELEASE" ]: getdownAppDistDir = getdown_app_dir_release + getdownSetAppBaseProperty = true reportRsyncCommand = true install4jSuffix = "" install4jInstallerName = "${jalview_name} Installer" + getdownArchiveAppBase = getdown_archive_base break case "ARCHIVE": @@ -279,6 +286,7 @@ ext { case "TEST-RELEASE": reportRsyncCommand = true + getdownSetAppBaseProperty = true // Don't ignore transpile errors for release build if (jalviewjs_ignore_transpile_errors.equals("true")) { jalviewjs_ignore_transpile_errors = "false" @@ -316,6 +324,7 @@ ext { case [ "LOCAL", "JALVIEWJS" ]: JALVIEW_VERSION = "TEST" getdownAppBase = file(getdownWebsiteDir).toURI().toString() + getdownArchiveAppBase = file("${jalviewDir}/${getdown_archive_dir}").toURI().toString() getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}") install4jExtraScheme = "jalviewl" break @@ -325,6 +334,7 @@ ext { break } + JALVIEW_VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_") // override getdownAppBase if requested if (findProperty("getdown_appbase_override") != null) { // revert to LOCAL if empty string @@ -1496,7 +1506,6 @@ task getdownWebsite() { } def getdownWebsiteResourceFilenames = [] - def getdownTextString = "" def getdownResourceDir = getdownResourceDir def getdownResourceFilenames = [] @@ -1518,7 +1527,7 @@ task getdownWebsite() { } getdownWebsiteResourceFilenames += file(channelPropsFile).getName() - // set some getdown_txt_ properties then go through all properties looking for getdown_txt_... + // set some getdownTxt_ properties then go through all properties looking for getdownTxt_... def props = project.properties.sort { it.key } if (getdownAltJavaMinVersion != null && getdownAltJavaMinVersion.length() > 0) { props.put("getdown_txt_java_min_version", getdownAltJavaMinVersion) @@ -1542,14 +1551,14 @@ task getdownWebsite() { props.put("getdown_txt_ui.name", install4jApplicationName) // start with appbase - getdownTextString += "appbase = ${getdownAppBase}\n" + getdownTextLines += "appbase = ${getdownAppBase}" props.each{ prop, val -> if (prop.startsWith("getdown_txt_") && val != null) { if (prop.startsWith("getdown_txt_multi_")) { def key = prop.substring(18) val.split(",").each{ v -> - def line = "${key} = ${v}\n" - getdownTextString += line + def line = "${key} = ${v}" + getdownTextLines += line } } else { // file values rationalised @@ -1569,15 +1578,15 @@ task getdownWebsite() { } } if (! prop.startsWith("getdown_txt_resource")) { - def line = prop.substring(12) + " = ${val}\n" - getdownTextString += line + def line = prop.substring(12) + " = ${val}" + getdownTextLines += line } } } } getdownWebsiteResourceFilenames.each{ filename -> - getdownTextString += "resource = ${filename}\n" + getdownTextLines += "resource = ${filename}" } getdownResourceFilenames.each{ filename -> copy { @@ -1594,7 +1603,7 @@ task getdownWebsite() { from s into "${getdownWebsiteDir}/${getdown_wrapper_script_dir}" } - getdownTextString += "resource = ${getdown_wrapper_script_dir}/${script}\n" + getdownTextLines += "resource = ${getdown_wrapper_script_dir}/${script}" } } @@ -1611,8 +1620,8 @@ task getdownWebsite() { // put jalview.jar first for CLASSPATH and .properties files reasons codeFiles.sort{a, b -> ( a.getName() == jalviewJar ? -1 : ( b.getName() == jalviewJar ? 1 : a <=> b ) ) }.each{f -> def name = f.getName() - def line = "code = ${getdownAppDistDir}/${name}\n" - getdownTextString += line + def line = "code = ${getdownAppDistDir}/${name}" + getdownTextLines += line copy { from f.getPath() into getdownAppDir @@ -1625,8 +1634,8 @@ task getdownWebsite() { def j11libFiles = fileTree(dir: "${jalviewDir}/${j11libDir}", include: ["*.jar"]).getFiles() j11libFiles.sort().each{f -> def name = f.getName() - def line = "code = ${getdown_j11lib_dir}/${name}\n" - getdownTextString += line + def line = "code = ${getdown_j11lib_dir}/${name}" + getdownTextLines += line copy { from f.getPath() into getdownJ11libDir @@ -1636,19 +1645,19 @@ task getdownWebsite() { */ // getdown-launcher.jar should not be in main application class path so the main application can move it when updated. Listed as a resource so it gets updated. - //getdownTextString += "class = " + file(getdownLauncher).getName() + "\n" - getdownTextString += "resource = ${getdown_launcher_new}\n" - getdownTextString += "class = ${main_class}\n" + //getdownTextLines += "class = " + file(getdownLauncher).getName() + getdownTextLines += "resource = ${getdown_launcher_new}" + getdownTextLines += "class = ${main_class}" // Not setting these properties in general so that getdownappbase and getdowndistdir will default to release version in jalview.bin.Cache if (getdownSetAppBaseProperty) { - getdownTextString += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}\n" - getdownTextString += "jvmarg = -Dgetdownappbase=${getdownAppBase}\n" + getdownTextLines += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}" + getdownTextLines += "jvmarg = -Dgetdownappbase=${getdownAppBase}" } - def getdown_txt = file("${getdownWebsiteDir}/getdown.txt") - getdown_txt.write(getdownTextString) + def getdownTxt = file("${getdownWebsiteDir}/getdown.txt") + getdownTxt.write(getdownTextLines.join("\n")) - def getdownLaunchJvl = getdown_launch_jvl_name + ( (jvlChannelName != null && jvlChannelName.length() > 0)?"-${jvlChannelName}":"" ) + ".jvl" + getdownLaunchJvl = getdown_launch_jvl_name + ( (jvlChannelName != null && jvlChannelName.length() > 0)?"-${jvlChannelName}":"" ) + ".jvl" def launchJvl = file("${getdownWebsiteDir}/${getdownLaunchJvl}") launchJvl.write("appbase=${getdownAppBase}") @@ -1671,7 +1680,7 @@ task getdownWebsite() { // files going into the getdown website dir: ./install dir and files if (! (CHANNEL.startsWith("ARCHIVE") || CHANNEL.startsWith("DEVELOP"))) { copy { - from getdown_txt + from getdownTxt from getdownLauncher from "${getdownAppDir}/${getdown_build_properties}" if (file(getdownLauncher).getName() != getdown_launcher) { @@ -1689,7 +1698,7 @@ task getdownWebsite() { // files going into the getdown files dir: getdown.txt, getdown-launcher.jar, channel-launch.jvl, build_properties copy { - from getdown_txt + from getdownTxt from launchJvl from getdownLauncher from "${getdownWebsiteDir}/${getdown_build_properties}" @@ -1700,7 +1709,7 @@ task getdownWebsite() { into getdownFilesDir } - // and ./resources (not all downloaded by getdown) + // and ./resource (not all downloaded by getdown) copy { from getdownResourceDir into "${getdownFilesDir}/${getdown_resource_dir}" @@ -1770,16 +1779,108 @@ task getdown() { } -task getdownArchive() { +task getdownArchiveBuild() { group = "distribution" - description = "Create the archive dir to go on the website" + description = "Put files in the archive dir to go on the website" dependsOn getdownWebsite + def v = "v${JALVIEW_VERSION_UNDERSCORES}" + def vDir = "${getdownArchiveDir}/${v}" + getdownFullArchiveDir = "${vDir}/getdown" + def vLaunchVersionJvl = "${vDir}/jalview-${v}.jvl" + def vAltDir = "alt_${v}" + def archiveImagesDir = "${jalviewDir}/${channel_properties_dir}/old/images" + + doFirst { + if (getdownArchiveAppBase == null) { + throw new StopExecutionException("Cannot create getdownArchive for CHANNEL=${CHANNEL}") + } + + // cleanup old "old" dir + delete getdownArchiveDir + + def getdownArchiveTxt = file("${getdownFullArchiveDir}/getdown.txt") + getdownArchiveTxt.getParentFile().mkdirs() + def getdownArchiveTextLines = [] + def getdownFullArchiveAppBase = "${getdownArchiveAppBase}${getdownArchiveAppBase.endsWith("/")?"":"/"}${v}/getdown/" + + // the libdir + copy { + from "${getdownWebsiteDir}/${getdownAppDistDir}" + into "${getdownFullArchiveDir}/${vAltDir}" + } + + getdownTextLines.each { line -> + line = line.replaceAll("^(?appbase\\s*=\\s*).*", '${s}'+getdownFullArchiveAppBase) + line = line.replaceAll("^(?(resource|code)\\s*=\\s*)${getdownAppDistDir}/", '${s}'+vAltDir+"/") + line = line.replaceAll("^(?ui.background_image\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_background.png") + line = line.replaceAll("^(?ui.instant_background_image\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_background_initialising.png") + line = line.replaceAll("^(?ui.error_background\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_background_error.png") + line = line.replaceAll("^(?ui.progress_image\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_progress_bar.png") + // remove the existing resource = resource/ or bin/ lines + if (! line.matches("resource\\s*=\\s*(resource|bin)/.*")) { + getdownArchiveTextLines += line + } + } + + // the resource dir -- add these files as resource lines in getdown.txt + copy { + from "${archiveImagesDir}" + into "${getdownFullArchiveDir}/${getdown_resource_dir}" + eachFile { file -> + getdownArchiveTextLines += "resource = ${getdown_resource_dir}/${file.getName()}" + } + } + + getdownArchiveTxt.write(getdownArchiveTextLines.join("\n")) + + def vLaunchJvl = file(vLaunchVersionJvl) + vLaunchJvl.getParentFile().mkdirs() + vLaunchJvl.write("appbase=${getdownFullArchiveAppBase}\n") + def vLaunchJvlPath = vLaunchJvl.toPath().toAbsolutePath() + def jvlLinkPath = file("${vDir}/jalview.jvl").toPath().toAbsolutePath() + // for some reason filepath.relativize(fileInSameDirPath) gives a path to "../" which is wrong + //java.nio.file.Files.createSymbolicLink(jvlLinkPath, jvlLinkPath.relativize(vLaunchJvlPath)); + java.nio.file.Files.createSymbolicLink(jvlLinkPath, java.nio.file.Paths.get(".",vLaunchJvl.getName())); + + // files going into the getdown files dir: getdown.txt, getdown-launcher.jar, channel-launch.jvl, build_properties + copy { + from getdownLauncher + from "${getdownWebsiteDir}/${getdownLaunchJvl}" + from "${getdownWebsiteDir}/${getdown_launcher_new}" + from "${getdownWebsiteDir}/${channel_props}" + if (file(getdownLauncher).getName() != getdown_launcher) { + rename(file(getdownLauncher).getName(), getdown_launcher) + } + into getdownFullArchiveDir + } + + } +} + +task getdownArchiveDigest(type: JavaExec) { + group = "distribution" + description = "Digest the getdown archive folder" + + dependsOn getdownArchiveBuild + doFirst { + classpath = files(getdownLauncher) + args getdownFullArchiveDir } + main = "com.threerings.getdown.tools.Digester" + inputs.dir(getdownFullArchiveDir) + outputs.file("${getdownFullArchiveDir}/digest2.txt") } +task getdownArchive() { + group = "distribution" + description = "Build the website archive dir with getdown digest" + + dependsOn getdownArchiveBuild + dependsOn getdownArchiveDigest +} tasks.withType(JavaCompile) { options.encoding = 'UTF-8' @@ -1790,6 +1891,7 @@ clean { doFirst { delete getdownWebsiteDir delete getdownFilesDir + delete getdownArchiveDir } } @@ -2023,8 +2125,7 @@ task sourceDist(type: Tar) { dependsOn createBuildProperties dependsOn convertMdFiles - def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_") - def outputFileName = "${project.name}_${VERSION_UNDERSCORES}.tar.gz" + def outputFileName = "${project.name}_${JALVIEW_VERSION_UNDERSCORES}.tar.gz" archiveFileName = outputFileName compression Compression.GZIP