id 'com.install4j.gradle' version '9.0.6'
id 'com.dorongold.task-tree' version '1.5' // only needed to display task dependency tree with gradle task1 [task2 ...] taskTree
id 'com.palantir.git-version' version '0.13.0' apply false
-// id 'org.gradle.crypto.checksum' version '1.4.0'
-
}
repositories {
testSourceDir = useClover ? cloverTestInstrDir : testDir
testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}"
- getdownWebsiteDir = string("${jalviewDir}/${getdown_website_dir}/${JAVA_VERSION}")
+ getdownChannelDir = string("${getdown_website_dir}/${propertiesChannelName}")
+ getdownAppBaseDir = string("${jalviewDir}/${getdownChannelDir}/${JAVA_VERSION}")
getdownArchiveDir = string("${jalviewDir}/${getdown_archive_dir}")
getdownFullArchiveDir = null
getdownTextLines = []
// the following values might be overridden by the CHANNEL switch
getdownDir = string("${getdownChannelName}/${JAVA_VERSION}")
getdownAppBase = string("${getdown_channel_base}/${getdownDir}")
- getdownArchiveAppBase = null
+ getdownArchiveAppBase = getdown_archive_base
getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}")
getdownAppDistDir = getdown_app_dir_alt
getdownImagesDir = string("${jalviewDir}/${getdown_images_dir}")
reportRsyncCommand = true
install4jSuffix = ""
install4jInstallerName = "${jalview_name} Installer"
- getdownArchiveAppBase = getdown_archive_base
break
case "ARCHIVE":
case "ARCHIVELOCAL":
getdownChannelName = string("archive/${JALVIEW_VERSION}")
getdownDir = string("${getdownChannelName}/${JAVA_VERSION}")
- getdownAppBase = file(getdownWebsiteDir).toURI().toString()
+ getdownAppBase = file(getdownAppBaseDir).toURI().toString()
if (!file("${ARCHIVEDIR}/${package_dir}").exists()) {
throw new GradleException("Must provide an ARCHIVEDIR value to produce an archive distribution")
} else {
case [ "LOCAL", "JALVIEWJS" ]:
JALVIEW_VERSION = "TEST"
- getdownAppBase = file(getdownWebsiteDir).toURI().toString()
+ getdownAppBase = file(getdownAppBaseDir).toURI().toString()
getdownArchiveAppBase = file("${jalviewDir}/${getdown_archive_dir}").toURI().toString()
getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}")
install4jExtraScheme = "jalviewl"
}
JALVIEW_VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_")
+ hugoDataJsonFile = file("${jalviewDir}/${hugo_build_dir}/data/installers/installers-${JALVIEW_VERSION_UNDERSCORES}.json")
// override getdownAppBase if requested
if (findProperty("getdown_appbase_override") != null) {
// revert to LOCAL if empty string
if (string(getdown_appbase_override) == "") {
- getdownAppBase = file(getdownWebsiteDir).toURI().toString()
+ getdownAppBase = file(getdownAppBaseDir).toURI().toString()
getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}")
} else if (string(getdown_appbase_override).startsWith("file://")) {
getdownAppBase = string(getdown_appbase_override)
.toLowerCase()
getdownWrapperLink = install4jUnixApplicationFolder // e.g. "jalview_local"
- getdownAppDir = string("${getdownWebsiteDir}/${getdownAppDistDir}")
- //getdownJ11libDir = "${getdownWebsiteDir}/${getdown_j11lib_dir}"
- getdownResourceDir = string("${getdownWebsiteDir}/${getdown_resource_dir}")
- getdownInstallDir = string("${getdownWebsiteDir}/${getdown_install_dir}")
+ getdownAppDir = string("${getdownAppBaseDir}/${getdownAppDistDir}")
+ //getdownJ11libDir = "${getdownAppBaseDir}/${getdown_j11lib_dir}"
+ getdownResourceDir = string("${getdownAppBaseDir}/${getdown_resource_dir}")
+ getdownInstallDir = string("${getdownAppBaseDir}/${getdown_install_dir}")
getdownFilesDir = string("${jalviewDir}/${getdown_files_dir}/${JAVA_VERSION}/")
getdownFilesInstallDir = string("${getdownFilesDir}/${getdown_install_dir}")
/* compile without modules -- using classpath libraries
doFirst {
// clean the getdown website and files dir before creating getdown folders
- delete getdownWebsiteDir
+ delete getdownAppBaseDir
delete getdownFilesDir
copy {
copy {
from channelPropsFile
- into getdownWebsiteDir
+ into getdownAppBaseDir
}
getdownWebsiteResourceFilenames += file(channelPropsFile).getName()
if (s.exists()) {
copy {
from s
- into "${getdownWebsiteDir}/${getdown_wrapper_script_dir}"
+ into "${getdownAppBaseDir}/${getdown_wrapper_script_dir}"
}
getdownTextLines += "resource = ${getdown_wrapper_script_dir}/${script}"
}
getdownTextLines += "jvmarg = -Dgetdownappbase=${getdownAppBase}"
}
- def getdownTxt = file("${getdownWebsiteDir}/getdown.txt")
+ def getdownTxt = file("${getdownAppBaseDir}/getdown.txt")
getdownTxt.write(getdownTextLines.join("\n"))
getdownLaunchJvl = getdown_launch_jvl_name + ( (jvlChannelName != null && jvlChannelName.length() > 0)?"-${jvlChannelName}":"" ) + ".jvl"
- def launchJvl = file("${getdownWebsiteDir}/${getdownLaunchJvl}")
+ def launchJvl = file("${getdownAppBaseDir}/${getdownLaunchJvl}")
launchJvl.write("appbase=${getdownAppBase}")
// files going into the getdown website dir: getdown-launcher.jar
copy {
from getdownLauncher
rename(file(getdownLauncher).getName(), getdown_launcher_new)
- into getdownWebsiteDir
+ into getdownAppBaseDir
}
// files going into the getdown website dir: getdown-launcher(-local).jar
if (file(getdownLauncher).getName() != getdown_launcher) {
rename(file(getdownLauncher).getName(), getdown_launcher)
}
- into getdownWebsiteDir
+ into getdownAppBaseDir
}
// files going into the getdown website dir: ./install dir and files
from getdownTxt
from launchJvl
from getdownLauncher
- from "${getdownWebsiteDir}/${getdown_build_properties}"
- from "${getdownWebsiteDir}/${channel_props}"
+ from "${getdownAppBaseDir}/${getdown_build_properties}"
+ from "${getdownAppBaseDir}/${channel_props}"
if (file(getdownLauncher).getName() != getdown_launcher) {
rename(file(getdownLauncher).getName(), getdown_launcher)
}
if (buildDist) {
inputs.dir("${jalviewDir}/${package_dir}")
}
- outputs.dir(getdownWebsiteDir)
+ outputs.dir(getdownAppBaseDir)
outputs.dir(getdownFilesDir)
}
classpath = files(getdownLauncher)
}
main = "com.threerings.getdown.tools.Digester"
- args getdownWebsiteDir
- inputs.dir(getdownWebsiteDir)
- outputs.file("${getdownWebsiteDir}/digest2.txt")
+ args getdownAppBaseDir
+ inputs.dir(getdownAppBaseDir)
+ outputs.file("${getdownAppBaseDir}/digest2.txt")
}
dependsOn getdownDigest
doLast {
if (reportRsyncCommand) {
- def fromDir = getdownWebsiteDir + (getdownWebsiteDir.endsWith('/')?'':'/')
+ def fromDir = getdownAppBaseDir + (getdownAppBaseDir.endsWith('/')?'':'/')
def toDir = "${getdown_rsync_dest}/${getdownDir}" + (getdownDir.endsWith('/')?'':'/')
println "LIKELY RSYNC COMMAND:"
println "mkdir -p '$toDir'\nrsync -avh --delete '$fromDir' '$toDir'"
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
// the libdir
copy {
- from "${getdownWebsiteDir}/${getdownAppDistDir}"
+ from "${getdownAppBaseDir}/${getdownAppDistDir}"
into "${getdownFullArchiveDir}/${vAltDir}"
}
// 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}"
+ from "${getdownAppBaseDir}/${getdownLaunchJvl}"
+ from "${getdownAppBaseDir}/${getdown_launcher_new}"
+ from "${getdownAppBaseDir}/${channel_props}"
if (file(getdownLauncher).getName() != getdown_launcher) {
rename(file(getdownLauncher).getName(), getdown_launcher)
}
clean {
doFirst {
- delete getdownWebsiteDir
+ delete getdownAppBaseDir
delete getdownFilesDir
delete getdownArchiveDir
}
'WRAPPER_SCRIPT_BIN_DIR': getdown_wrapper_script_dir,
'INSTALLER_NAME': install4jInstallerName,
'INSTALL4J_UTILS_DIR': install4j_utils_dir,
- 'GETDOWN_WEBSITE_DIR': getdown_website_dir,
+ 'GETDOWN_CHANNEL_DIR': getdownChannelDir,
'GETDOWN_FILES_DIR': getdown_files_dir,
'GETDOWN_RESOURCE_DIR': getdown_resource_dir,
'GETDOWN_DIST_DIR': getdownAppDistDir,
}
//verbose=true
- inputs.dir(getdownWebsiteDir)
+ inputs.dir(getdownAppBaseDir)
inputs.file(install4jConfFile)
inputs.file("${install4jDir}/${install4j_info_plist_file_associations}")
inputs.dir(macosJavaVMDir)
HashCode hash = Files.asByteSource(myFile).hash(Hashing.sha256())
return myFile.exists()
? [
- "filename" : myFile.getName(),
+ "file" : myFile.getName(),
"filesize" : myFile.length(),
"sha256" : hash.toString()
]
: null
}
-def writeDataJsonFile(File installersOutputTxt, File installersSha256, File hugoDataJsonFile) {
- if (!installersOutputTxt.exists()) {
- throw new GradleException("Required input file '${installersOutputTxt.getPath()}' doesn't exist.")
- return null;
- }
- if (install4jCheckSums && (!installersSha256)) {
- throw new GradleException("Required input file '${installersSha256.getPath()}' doesn't exist.")
- return null;
- }
+def writeDataJsonFile(File installersOutputTxt, File installersSha256, File dataJsonFile) {
def hash = [
"channel" : getdownChannelName,
"date" : getDate("yyyy-MM-dd HH:mm:ss"),
"git-commit" : "${gitHash} [${gitBranch}]",
"version" : JALVIEW_VERSION
]
- def idHash = [:]
- installersOutputTxt.readLines().each { def line ->
- if (line.startsWith("#")) {
- return;
- }
- line.replaceAll("\n","")
- def vals = line.split("\t")
- def filename = vals[3]
- def filesize = file(filename).length()
- filename = filename.replaceAll(/^.*\//, "")
- hash[vals[0]] = [ "id" : vals[0], "os" : vals[1], "name" : vals[2], "file" : filename, "filesize" : filesize ]
- idHash."${filename}" = vals[0]
- }
- if (install4jCheckSums) {
- installersSha256.readLines().each { def line ->
+ // install4j installer files
+ if (installersOutputTxt.exists()) {
+ def idHash = [:]
+ installersOutputTxt.readLines().each { def line ->
if (line.startsWith("#")) {
return;
}
line.replaceAll("\n","")
- def vals = line.split(/\s+\*?/)
- def filename = vals[1]
- def innerHash = (hash.(idHash."${filename}"))."sha256" = vals[0]
+ def vals = line.split("\t")
+ def filename = vals[3]
+ def filesize = file(filename).length()
+ filename = filename.replaceAll(/^.*\//, "")
+ hash[vals[0]] = [ "id" : vals[0], "os" : vals[1], "name" : vals[2], "file" : filename, "filesize" : filesize ]
+ idHash."${filename}" = vals[0]
+ }
+ if (install4jCheckSums && installersSha256.exists()) {
+ installersSha256.readLines().each { def line ->
+ if (line.startsWith("#")) {
+ return;
+ }
+ line.replaceAll("\n","")
+ def vals = line.split(/\s+\*?/)
+ def filename = vals[1]
+ def innerHash = (hash.(idHash."${filename}"))."sha256" = vals[0]
+ }
}
}
- // executable JAR
- def jarHash = getDataHash(file(shadowJar.archiveFile))
- if (jarHash != null) {
- hash."JAR" = jarHash;
- }
-
- // version JVL
- def jvlHash =getDataHash(file(getdownVersionLaunchJvl))
- if (jvlHash != null) {
- hash."JVL" = jvlHash;
- }
-
- // source TGZ
- def tarHash = getDataHash(file(sourceDist.archiveFile))
- if (tarHash != null) {
- hash."SOURCE" = tarHash;
+ [
+ "JAR": shadowJar.archiveFile, // executable JAR
+ "JVL": getdownVersionLaunchJvl, // version JVL
+ "SOURCE": sourceDist.archiveFile // source TGZ
+ ].each { key, value ->
+ def file = file(value)
+ if (file.exists()) {
+ def fileHash = getDataHash(file)
+ if (fileHash != null) {
+ hash."${key}" = fileHash;
+ }
+ }
}
-
- return hugoDataJsonFile.write(new JsonBuilder(hash).toPrettyString())
+ return dataJsonFile.write(new JsonBuilder(hash).toPrettyString())
}
task staticMakeInstallersJsonFile {
exclude ("utils/InstallAnywhere")
exclude (getdown_files_dir)
- exclude (getdown_website_dir)
+ // getdown_website_dir and getdown_archive_dir moved to build/website/docroot/getdown
+ //exclude (getdown_website_dir)
+ //exclude (getdown_archive_dir)
// exluding these as not using jars as modules yet
exclude ("${j11modDir}/**/*.jar")
}
}
-task makeDataJsonFile {
- dependsOn installerFiles
- dependsOn sourceDist
- dependsOn getdownArchive
- dependsOn shadowJar
+task dataInstallersJson {
+ group "website"
+ description "Create the installers-VERSION.json data file for installer files created"
def installersOutputTxt = file("${jalviewDir}/${install4jBuildDir}/output.txt")
def installersSha256 = file("${jalviewDir}/${install4jBuildDir}/sha256sums")
- def hugoDataJsonFile = file("${jalviewDir}/${hugo_build_dir}/data/installers-${JALVIEW_VERSION_UNDERSCORES}.json")
- inputs.file(installersOutputTxt)
- if (install4jCheckSums) {
+ if (installersOutputTxt.exists()) {
+ inputs.file(installersOutputTxt)
+ }
+ if (install4jCheckSums && installersSha256.exists()) {
inputs.file(installersSha256)
}
+ [
+ shadowJar.archiveFile, // executable JAR
+ getdownVersionLaunchJvl, // version JVL
+ sourceDist.archiveFile // source TGZ
+ ].each { fileName ->
+ if (file(fileName).exists()) {
+ inputs.file(fileName)
+ }
+ }
+
outputs.file(hugoDataJsonFile)
doFirst {
}
}
+dataInstallersJson.mustRunAfter installers
+dataInstallersJson.mustRunAfter shadowJar
+dataInstallersJson.mustRunAfter sourceDist
+dataInstallersJson.mustRunAfter getdownArchive
+
+
task helppages {
dependsOn copyHelp
dependsOn pubhtmlhelp