JAL-3210 Changed eclipse workspace dir to be a system temp dir [held in build/jalview...
[jalview.git] / build.gradle
index 07c744f..03dacfb 100644 (file)
@@ -1262,19 +1262,9 @@ task helppages  {
   outputs.dir("$helpOutputDir")
 }
 
-def eclipseWorkspace
-task jalviewjsSetEclipseWorkspace {
-  def eclipseWsDir = jalviewjs_eclipse_workspace
-  eclipseWorkspace = file(eclipseWsDir)
-  if (!eclipseWorkspace.exists()) {
-    eclipseWorkspace = file("${buildDir}/../tmp/eclipse-workspace")
-    //eclipseWorkspace.deleteOnExit()
-  }
-  println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath())
-}
-
 def jalviewjsBuildDir
 def jalviewjsSiteDir
+def jalviewjsTransferSiteDir
 task jalviewjsSitePath {
   if (jalviewjs_site_dir.startsWith("/")) {
     jalviewjsSiteDir = jalviewjs_site_dir
@@ -1283,8 +1273,42 @@ task jalviewjsSitePath {
     jalviewjsBuildDir = "${relativeBuildDir}/jalviewjs"
     jalviewjsSiteDir = jalviewjsBuildDir + "/" + jalviewjs_site_dir
   }
+  jalviewjsTransferSiteDir = jalviewjsBuildDir + "/tmp/site"
 }
 
+def eclipseWorkspace
+task jalviewjsSetEclipseWorkspace {
+  def propKey = "jalviewjs_eclipse_workspace"
+  def propsFile = "${jalviewjsBuildDir}/${jalviewjs_eclipse_workspace_location_file}"
+  def props = new Properties()
+  def eclipseWsDir
+  def propVal = null
+  if (project.hasProperty(propKey)) {
+    propVal = project.getProperty(propKey)
+    eclipseWsDir = propVal
+  }
+  if ((eclipseWsDir == null || !file(eclipseWsDir).exists()) && file(propsFile).exists()) {
+    def ins = new FileInputStream(propsFile)
+    props.load(ins)
+    ins.close()
+    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)
+    props.store(outs, null)
+    outs.close()
+  }
+
+  eclipseWorkspace = file(eclipseWsDir)
+    
+  println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath())
+
+  inputs.property(propKey, propVal)
+  outputs.file(propsFile)
+}
 
 
 task jalviewjsUnzipFiles {
@@ -1358,14 +1382,14 @@ task jalviewjsCreateJ2sSettings(type: WriteProperties) {
     if (prop.startsWith("j2s.") && val != null) {
       if (prop == siteDirProperty) {
         if (!(val.startsWith("/") || val.startsWith("file://") )) {
-          val = jalviewjsSiteDir+"/"+val
+          val = jalviewjsTransferSiteDir+"/"+val
         }
         setSiteDir = true
       }
       property(prop,val)
     }
     if (!setSiteDir) {
-      property(siteDirProperty,"${jalviewjsSiteDir}")
+      property(siteDirProperty,jalviewjsTransferSiteDir)
     }
   }
   outputs.file(outputFile)
@@ -1474,25 +1498,19 @@ task jalviewjsTranspile(type: Exec) {
 
   inputs.dir(sourceDir)
   outputs.dir(eclipse_bin_dir+"/main")
-  outputs.files(
-    fileTree(
-      dir: jalviewjsSiteDir+"/"+jalviewjs_j2s_subdir,
-      includes: [ "**/*.js" ],
-      excludes: [
-        //jalviewjsSiteDir+"/"+jalviewjs_j2s_subdir+"/intervalstore/**",
-        //jalviewjsSiteDir+"/"+jalviewjs_j2s_subdir+"/org/json/**",
-        "intervalstore/**",
-        "org/json/**",
-      ]
-    ).files
-  )
-  outputs.file(jalviewjsSiteDir+jalviewjs_server_resource)
-
-}
-
-jalviewjsUnzipFiles.mustRunAfter jalviewjsTranspile
-jalviewjsTranspile.mustRunAfter jalviewjsCopyResources
-jalviewjsTranspile.mustRunAfter jalviewjsCopySiteResources
+  outputs.dir(jalviewjsTransferSiteDir)
+
+}
+
+task jalviewjsCopyTransferSite(type: Copy) {
+  dependsOn jalviewjsTranspile
+  from jalviewjsTransferSiteDir
+  into jalviewjsSiteDir
+}
+
+jalviewjsUnzipFiles.mustRunAfter jalviewjsCopyTransferSite
+jalviewjsCopyResources.mustRunAfter jalviewjsCopyTransferSite
+jalviewjsCopySiteResources.mustRunAfter jalviewjsCopyTransferSite
 
 task jalviewjsPrepareSite {
   group "JalviewJS"
@@ -1506,8 +1524,8 @@ task jalviewjsPrepareSite {
 task jalviewjsBuildSite {
   group "JalviewJS"
   description "Builds the whole website including transpiled code"
+  dependsOn jalviewjsCopyTransferSite
   dependsOn jalviewjsPrepareSite
-  dependsOn jalviewjsTranspile
 }
 
 task jalviewjsSiteTar(type: Tar) {
@@ -1557,6 +1575,8 @@ task jalviewjsServer {
 }
 
 task jalviewjs {
+  group "JalviewJS"
+  description "Build the site"
   dependsOn jalviewjsBuildSite
 }