+
+
+
+
+
+
+
+
+// closure
+def jalviewjsCallCore(String name, FileCollection list, String jsDir, String outputDir) {
+ def coreFileName = "core${name}.js"
+ def coreFilePath = "${outputDir}/${coreFileName}"
+ def coreFile = file(coreFilePath)
+ println("...Generating ${coreFilePath}")
+
+ def coreTop = file("${jsDir}/core/coretop2.js")
+ def coreBottom = file("${jsDir}/core/corebottom2.js")
+ coreFile.getParentFile().mkdirs()
+ coreFile.createNewFile()
+ coreFile.write( coreTop.text )
+ list.each {
+ f ->
+ if (f.exists()) {
+ def t = f.text
+ t.replaceAll("Clazz\\.","Clazz_")
+ t.replaceAll("Class__","Clazz._")
+ coreFile.append( t )
+ } else {
+ println("...file ${line} does not exist, skipping")
+ }
+ }
+ coreFile.append( coreBottom.text )
+
+ def coreZFileName = "core${name}.z.js"
+ def coreZFilePath = "${outputDir}/${coreZFileName}"
+ def coreZFile = file(coreZFilePath)
+ println("...Generating ${coreZFilePath}")
+
+ javaexec {
+ classpath = files(["${jalviewDir}/tools/closure_compiler.jar"])
+ args = [ "--js", coreFileName, "--js_output_file", coreZFileName ]
+ workingDir = outputDir
+ }
+
+ return [ coreFile, coreZFile ]
+}
+
+def jalviewjsToJs(String name, String classlist, String jsDir, String j2sDir, String outputDir) {
+ def filelist = []
+ file(classlist).eachLine {
+ line ->
+ filelist += line
+ }
+ def list = fileTree(dir: j2sDir, includes: filelist)
+ /*
+ def list = files()
+ file(classlist).eachLine {
+ line ->
+ list += file("${j2sDir}/${line}")
+ }
+ */
+
+ return jalviewjsCallCore(name, list, jsDir, outputDir)
+// publish-core-template ... here?
+}
+
+task jalviewjsBuildAllCores {
+ group "JalviewJS"
+ description "Build the core js lib closures"
+
+ dependsOn jalviewjsSitePath
+ dependsOn jalviewjsTransferUnzipLib
+ dependsOn jalviewjsTranspile
+
+ fileTree(dir: "${jalviewDir}/${jalviewjs_classlists_dir}", include: "*.txt").each {
+ file ->
+ def name = file.getName() - ".txt"
+
+ jalviewjsToJs(name, file.getAbsolutePath(), "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_js_subdir}", "${jalviewDir}/${jalviewjsTransferSiteJsDir}/${jalviewjs_j2s_subdir}", "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core")
+ }
+}