diff toolfactory/rgToolFactory2.py @ 3:c4f192ec521c draft

Uploaded
author fubar
date Tue, 20 Apr 2021 05:30:52 +0000
parents b65ec4f387b9
children
line wrap: on
line diff
--- a/toolfactory/rgToolFactory2.py	Sun Apr 18 04:42:15 2021 +0000
+++ b/toolfactory/rgToolFactory2.py	Tue Apr 20 05:30:52 2021 +0000
@@ -1043,6 +1043,23 @@
         and for generating test outputs if command or test overrides are
         supplied test outputs are sent to repdir for display
         """
+        penv = os.environ
+        phome = penv['HOME']
+        isDocker = os.path.exists('/.dockerenv')
+        if isDocker: # use the volume if it exists
+            phome = '/home/planemo'
+            if os.path.exists(phome): # is mounted
+                home = phome
+            else:
+                home = '/tmp/planemo' # this will be brutal but otherwise /home/galaxy
+                os.mkdir('/tmp/planemo')
+        penv["HOME"] = phome
+        path = penv['PATH']
+        penv['PATH'] = '%s:%s' % (phome,path)
+        print(f"#### set home to {phome} with path={penv['PATH']}")
+        #pconfig = os.path.join(phome,'.planemo.yml')
+        #penv["PLANEMO_GLOBAL_CONFIG_PATH"] = pconfig
+        # self.set_planemo_galaxy_root(self.args.galaxy_root, config_path=pconfig)
         xreal = "%s.xml" % self.tool_name
         tool_test_path = os.path.join(
             self.repdir, f"{self.tool_name}_planemo_test_report.html"
@@ -1054,17 +1071,20 @@
         cll = [
             "planemo",
             "test",
+            "--galaxy_python_version",
+            self.args.python_version,
             "--test_data",
             os.path.abspath(self.testdir),
             "--test_output",
             os.path.abspath(tool_test_path),
-            "--galaxy_root",
-            self.args.galaxy_root,
+            ## "--galaxy_root",
+            ## self.args.galaxy_root,
             "--update_test_data",
             os.path.abspath(xreal),
         ]
         p = subprocess.run(
             cll,
+            env = penv,
             shell=False,
             cwd=self.tooloutdir,
             stderr=tout,
@@ -1073,6 +1093,36 @@
         tout.close()
         return p.returncode
 
+    def set_planemo_galaxy_root(self, galaxyroot, config_path):
+        # planemo tries to write to ~/.planemo - trying to convince it otherwise
+        CONFIG_TEMPLATE = """## Planemo Global Configuration File.
+## Everything in this file is completely optional - these values can all be
+## configured via command line options for the corresponding commands.
+## Specify a default galaxy_root for test and server commands here.
+galaxy_root: %s
+## Username used with toolshed(s).
+#shed_username: "<TODO>"
+sheds:
+  # For each tool shed you wish to target, uncomment key or both email and
+  # password.
+  toolshed:
+    #key: "<TODO>"
+    #email: "<TODO>"
+    #password: "<TODO>"
+  testtoolshed:
+    #key: "<TODO>"
+    #email: "<TODO>"
+    #password: "<TODO>"
+  local:
+    #key: "<TODO>"
+    #email: "<TODO>"
+    #password: "<TODO>"
+"""
+        if not os.path.exists(config_path):
+            with open(config_path, "w") as f:
+                f.write(CONFIG_TEMPLATE % galaxyroot)
+
+
 def main():
     """
     This is a Galaxy wrapper.