def eclipseWorkspace
task jalviewjsSetEclipseWorkspace {
def propKey = "jalviewjs_eclipse_workspace"
- def propsFile = "${jalviewjsBuildDir}/${jalviewjs_eclipse_workspace_location_file}"
+ def propsFileName = "${jalviewjsBuildDir}/${jalviewjs_eclipse_workspace_location_file}"
def props = new Properties()
def eclipseWsDir
def propVal = null
propVal = project.getProperty(propKey)
eclipseWsDir = propVal
}
- if ((eclipseWsDir == null || !file(eclipseWsDir).exists()) && file(propsFile).exists()) {
- def ins = new FileInputStream(propsFile)
+ if (( eclipseWsDir == null || !file(eclipseWsDir).exists() ) && file(propsFileName).exists()) {
+ def ins = new FileInputStream(propsFileName)
props.load(ins)
ins.close()
- eclipseWsDir = props.getProperty(propKey)
+ if (props.getProperty(propKey, null) != null) {
+ eclipseWsDir = props.getProperty(propKey)
+ }
}
+
if (eclipseWsDir == null || !file(eclipseWsDir).exists()) {
def tempDir = File.createTempDir()
eclipseWsDir = tempDir.getAbsolutePath()
props.setProperty(propKey, eclipseWsDir)
- def outs = new FileOutputStream(propsFile)
+ def propsFile = file(propsFileName)
+ propsFile.parentFile.mkdirs()
+ propsFile.createNewFile() // doesn't affect existing file
+ def outs = new FileOutputStream(propsFile, false)
props.store(outs, null)
outs.close()
}
println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath())
inputs.property(propKey, propVal)
- outputs.file(propsFile)
+ outputs.file(propsFileName)
}
def eclipseDropinsDir
def eclipseBinary
+def eclipseVersion
+def fromDropinsDir
task jalviewjsEclipsePaths {
def eclipseRoot
+ def eclipseProduct
eclipseRoot = jalviewjs_eclipse_root
if (eclipseRoot.startsWith("~")) {
eclipseRoot = System.getProperty("user.home") + eclipseRoot.substring(1)
eclipseRoot += "/Eclipse.app"
eclipseDropinsDir = eclipseRoot+"/Contents/Eclipse/dropins"
eclipseBinary = eclipseRoot+"/Contents/MacOS/eclipse"
+ eclipseProduct = eclipseRoot+"/Contents/Eclipse/.eclipseproduct"
} else if (OperatingSystem.current().isWindows()) { // check these paths!!
eclipseDropinsDir = eclipseRoot+"/dropins"
eclipseBinary = eclipseRoot+"/eclipse"
+ eclipseProduct = eclipseRoot+"/.eclipseproduct"
} else { // linux or unix
eclipseDropinsDir = eclipseRoot+"/dropins"
eclipseBinary = eclipseRoot+"/eclipse"
+ eclipseProduct = eclipseRoot+"/.eclipseproduct"
}
+
+ def fis = new FileInputStream(eclipseProduct)
+ def props = new Properties()
+ props.load(fis)
+ eclipseVersion = props.getProperty("version")
+ fis.close()
+ println("ECLIPSE_VERSION=${eclipseVersion}")
+ String[] v = eclipseVersion.split("\\.")
+ def v0 = Integer.valueOf(v[0])
+ def v1 = Integer.valueOf(v[1])
+ if (v0 < 4 || ( v0 == 4 && v1 < 13 )) {
+ fromDropinsDir = "eclipse/dropins_4.12"
+ } else {
+ fromDropinsDir = "eclipse/dropins_4.13"
+ }
}
task jalviewjsEclipseCopyDropins {
dependsOn jalviewjsEclipsePaths
- def inputFiles = fileTree(dir: jalviewjs_utils_dir+"/"+jalviewjs_eclipse_dropins_dir, include: "*.jar")
+ def inputFiles = fileTree(dir: jalviewjs_utils_dir+"/"+fromDropinsDir, include: "*.jar")
def outputDir = eclipseDropinsDir
inputs.files inputFiles
stdout = new ByteArrayOutputStream()
stderr = new ByteArrayOutputStream()
+ def logOutFileName = "${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}"
+ def logOutFile = file(logOutFileName)
+ logOutFile.createNewFile()
+ def logOutFOS = new FileOutputStream(logOutFile, false)
+ //def logErrFileName = "${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}"
+ //def logErrFile = file(logFileName)
+ //logErrFile.createNewFile()
+ //def logErrFOS = new FileErrputStream(logErrFile, false)
+ // combine stdout and stderr
+ def logErrFOS = logOutFOS
if (jalviewjs_j2s_to_console.equals("true")) {
standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
new org.apache.tools.ant.util.TeeOutputStream(
- new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}"),
+ logOutFOS,
stdout),
standardOutput)
errorOutput = new org.apache.tools.ant.util.TeeOutputStream(
new org.apache.tools.ant.util.TeeOutputStream(
- new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}"),
+ logErrFOS,
stderr),
errorOutput)
} else {
standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
- new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}"),
+ logOutFOS,
stdout)
errorOutput = new org.apache.tools.ant.util.TeeOutputStream(
- new FileOutputStream("${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}"),
+ logErrFOS,
stderr)
}
}
doLast {
if (stdout.toString().contains("Error processing ")) {
// j2s did not complete transpile
- throw new GradleException("Error during transpilation:\n${stderr}\nSee eclipse transpile log files '${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}' and '${jalviewjsBuildDir}/${jalviewjs_j2s_stderr}'\n")
+ throw new GradleException("Error during transpilation:\n${stderr}\nSee eclipse transpile log file '${jalviewjsBuildDir}/${jalviewjs_j2s_stdout}'")
}
}