jalviewjsTransferSiteCoreDir = string("${jalviewjsBuildDir}/tmp/${jalviewjs_site_dir}_core")
jalviewjsJalviewCoreHtmlFile = string("")
jalviewjsJalviewCoreName = string(jalviewjs_core_name)
+ jalviewjsCoreClasslists = []
jalviewjsJalviewTemplateName = string(jalviewjs_name)
eclipseWorkspace = null
}
-clean {
- doFirst {
- delete install4jConfFile
- }
-}
-
-
task sourceDist (type: Tar) {
def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_")
props.store(bytes, null)
def propertiesString = bytes.toString()
propsFile.text = propertiesString
+ print("NEW ")
+ } else {
+ print("EXISTING ")
}
println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath())
}
-def jalviewjsCallCore(FileCollection list, String prefixFile, String suffixFile, String jsfile, String zjsfile, File logOutFile, Boolean logOutConsole) {
+def jalviewjsCallCore(String name, FileCollection list, String prefixFile, String suffixFile, String jsfile, String zjsfile, File logOutFile, Boolean logOutConsole) {
def stdout = new ByteArrayOutputStream()
def stderr = new ByteArrayOutputStream()
def coreFile = file(jsfile)
def msg = ""
- msg = "Generating ${jsfile}"
+ msg = "Creating core for ${name}...\nGenerating ${jsfile}"
println(msg)
logOutFile.createNewFile()
logOutFile.append(msg+"\n")
f ->
if (f.exists()) {
def t = f.text
- t.replaceAll("Clazz\\.","Clazz_")
- t.replaceAll("Class__","Clazz._")
+ t.replaceAll("Clazz\\.([^_])","Clazz_${1}")
coreFile.append( t )
} else {
msg = "...file '"+f.getPath()+"' does not exist, skipping"
dependsOn jalviewjsTransferUnzipSwingJs
def j2sDir = "${jalviewDir}/${jalviewjsTransferSiteJsDir}/${jalviewjs_j2s_subdir}"
+ def swingJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_j2s_subdir}"
+ def libJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_j2s_subdir}"
def jsDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_js_subdir}"
def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core"
def prefixFile = "${jsDir}/core/coretop2.js"
classlistFiles += [ 'file': file("${jalviewDir}/${jalviewjs_classlist_jmol}"), 'name': "_jvjmol" ]
classlistFiles += [ 'file': file("${jalviewDir}/${jalviewjs_classlist_jalview}"), 'name': jalviewjsJalviewCoreName ]
- def classlists = []
+ jalviewjsCoreClasslists = []
classlistFiles.each {
hash ->
def jsfile = "${outputDir}/core${name}.js"
def zjsfile = "${outputDir}/core${name}.z.js"
- classlists += [
- 'jsfile': jsfile,
- 'zjsfile': zjsfile,
- 'list': list
+ jalviewjsCoreClasslists += [
+ 'jsfile': jsfile,
+ 'zjsfile': zjsfile,
+ 'list': list,
+ 'name': name
]
inputs.file(file)
}
// _stevesoft core. add any cores without a classlist here (and the inputs and outputs)
+ def stevesoftClasslistName = "_stevesoft"
def stevesoftClasslist = [
- 'jsfile': "${outputDir}/core_stevesoft.js",
- 'zjsfile': "${outputDir}/core_stevesoft.z.js",
- 'list': fileTree(dir: j2sDir, include: "com/stevesoft/pat/**/*.js")
+ 'jsfile': "${outputDir}/core${stevesoftClasslistName}.js",
+ 'zjsfile': "${outputDir}/core${stevesoftClasslistName}.z.js",
+ 'list': fileTree(dir: j2sDir, include: "com/stevesoft/pat/**/*.js"),
+ 'name': stevesoftClasslistName
]
- classlists += stevesoftClasslist
+ jalviewjsCoreClasslists += stevesoftClasslist
inputs.files(stevesoftClasslist['list'])
outputs.file(stevesoftClasslist['jsfile'])
outputs.file(stevesoftClasslist['zjsfile'])
+ // _all core
+ def allClasslistName = "_all"
+ def allJsFiles = fileTree(dir: j2sDir, include: "**/*.js")
+ //allJsFiles += fileTree(dir: libJ2sDir, include: "**/*.js")
+ //allJsFiles += fileTree(dir: swingJ2sDir, include: "**/*.js")
+ def allClasslist = [
+ 'jsfile': "${outputDir}/core${allClasslistName}.js",
+ 'zjsfile': "${outputDir}/core${allClasslistName}.z.js",
+ 'list': allJsFiles,
+ 'name': allClasslistName
+ ]
+ jalviewjsCoreClasslists += allClasslist
+ inputs.files(allClasslist['list'])
+ outputs.file(allClasslist['jsfile'])
+ outputs.file(allClasslist['zjsfile'])
+
doFirst {
def logOutFile = file("${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_j2s_closure_stdout}")
logOutFile.getParentFile().mkdirs()
logOutFile.createNewFile()
logOutFile.write(getDate("yyyy-MM-dd HH:mm:ss")+" jalviewjsBuildAllCores\n----\n")
- classlists.each {
- jalviewjsCallCore(it.list, prefixFile, suffixFile, it.jsfile, it.zjsfile, logOutFile, jalviewjs_j2s_to_console.equals("true"))
+ jalviewjsCoreClasslists.each {
+ jalviewjsCallCore(it.name, it.list, prefixFile, suffixFile, it.jsfile, it.zjsfile, logOutFile, jalviewjs_j2s_to_console.equals("true"))
}
}
}
-task jalviewjsPublishCoreTemplate(type: Sync) {
- dependsOn jalviewjsBuildAllCores
+def jalviewjsPublishCoreTemplate(String coreName, String templateName, File inputFile, String outputFile) {
+ copy {
+ from inputFile
+ into file(outputFile).getParentFile()
+ rename { filename ->
+ if (filename.equals(inputFile.getName())) {
+ return file(outputFile).getName()
+ }
+ return null
+ }
+ filter(ReplaceTokens,
+ beginToken: '_',
+ endToken: '_',
+ tokens: [
+ 'MAIN': '"'+mainClass+'"',
+ 'CODE': "null",
+ 'NAME': jalviewjsJalviewTemplateName+" [core ${coreName}]",
+ 'COREKEY': jalviewjs_core_key,
+ 'CORENAME': coreName
+ ]
+ )
+ }
+}
+
- def inputFile = file("${jalviewDir}/${j2s_template_html}")
+task jalviewjsPublishCoreTemplates {
+ dependsOn jalviewjsBuildAllCores
+ def inputFileName = "${jalviewDir}/${j2s_coretemplate_html}"
+ def inputFile = file(inputFileName)
def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}"
- from inputFile
- into outputDir
def outputFiles = []
- jalviewjsJalviewCoreHtmlFile = "${jalviewjsJalviewTemplateName}_${jalviewjsJalviewCoreName}.html"
- rename { filename ->
- outputFiles += "${outputDir}/${filename}"
- if (filename.equals(inputFile.getName())) {
- return jalviewjsJalviewCoreHtmlFile
+ jalviewjsCoreClasslists.each { cl ->
+ def outputFile = "${outputDir}/${jalviewjsJalviewTemplateName}_${cl.name}.html"
+ cl['outputfile'] = outputFile
+ outputFiles += outputFile
+ }
+
+ doFirst {
+ jalviewjsCoreClasslists.each { cl ->
+ jalviewjsPublishCoreTemplate(cl.name, jalviewjsJalviewTemplateName, inputFile, cl.outputfile)
}
- return null
- }
- filter(ReplaceTokens,
- beginToken: '_',
- endToken: '_',
- tokens: [
- 'MAIN': '"'+mainClass+'"',
- 'CODE': "null",
- 'NAME': jalviewjsJalviewTemplateName
- ]
- )
- filter(ReplaceTokens,
- beginToken: '',
- endToken: '',
- tokens: [
- 'NONE': jalviewjsJalviewCoreName
- ]
- )
- preserve {
- include "**"
}
- outputs.files outputFiles
- inputs.files inputFile
+ inputs.file(inputFile)
+ outputs.files(outputFiles)
}
task jalviewjsSyncCore (type: Sync) {
dependsOn jalviewjsBuildAllCores
- dependsOn jalviewjsPublishCoreTemplate
+ dependsOn jalviewjsPublishCoreTemplates
def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteCoreDir}")
def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
def start = port
def running = false
def url
- def urlcore
+ def jalviewjsServer
while(port < start+1000 && !running) {
try {
def doc_root = new File("${jalviewDirAbsolutePath}/${jalviewjsSiteDir}")
- def jalviewjsServer = factory.start(doc_root, port)
+ jalviewjsServer = factory.start(doc_root, port)
running = true
url = jalviewjsServer.getResourceUrl(jalviewjs_server_resource)
- urlcore = jalviewjsServer.getResourceUrl(jalviewjsJalviewCoreHtmlFile)
println("SERVER STARTED with document root ${doc_root}.")
println("Go to "+url+" . Run gradle --stop to stop (kills all gradle daemons).")
println("For debug: "+url+"?j2sdebug")
- println("For core: "+urlcore)
-
- file(htmlFile).text = """
- <p><a href="${url}">JalviewJS Test. <${url}></a></p>
- <p><a href="${url}?j2sdebug">JalviewJS Test with debug. <${url}?j2sdebug<</a></p>
- <p><a href="${urlcore}">${jalviewjsJalviewTemplateName} Core Test. <${urlcore}></a></p>
- """
-
+ println("For verbose: "+url+"?j2sverbose")
} catch (Exception e) {
port++;
}
}
+ def htmlText = """
+ <p><a href="${url}">JalviewJS Test. <${url}></a></p>
+ <p><a href="${url}?j2sdebug">JalviewJS Test with debug. <${url}?j2sdebug<</a></p>
+ """
+ jalviewjsCoreClasslists.each { cl ->
+ def urlcore = jalviewjsServer.getResourceUrl(file(cl.outputfile).getName())
+ htmlText += """
+ <p><a href="${urlcore}">${jalviewjsJalviewTemplateName} [core ${cl.name}]. <${urlcore}></a></p>
+ """
+ println("For core ${cl.name}: "+urlcore)
+ }
+ file(htmlFile).text = htmlText
}
outputs.file(htmlFile)