Salome HOME
'[CEA 19927] Folders with spaces' : second part
[modules/kernel.git] / bin / runSalome.py
index e51e08cb24bf837b1dae18eac4963099996b75eb..b4fc7270f7634d38549f529798fe2d33d33209f3 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2020  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -154,9 +154,9 @@ class CatalogServer(Server):
               self.SCMD1+=["NameService=corbaname::" + machine + ":" + port]
         self.SCMD1+=['-common']
         self.SCMD2=[]
-        home_dir=os.getenv('HOME')
+        home_dir=os.path.expanduser("~")
         if home_dir is not None:
-            self.SCMD2=['-personal',os.path.join(home_dir,'Salome/resources/CatalogModulePersonnel.xml')]
+            self.SCMD2=['-personal',os.path.join(home_dir,'Salome', 'resources', 'CatalogModulePersonnel.xml')]
 
     def setpath(self,modules_list,modules_root_dir):
         list_modules = modules_list[:]
@@ -284,9 +284,9 @@ class SessionServer(Server):
                          '(','--salome_session','theSession',')']
         if 'moduleCatalog' in self.args['embedded']:
             self.SCMD1+=['--with','ModuleCatalog','(','-common']
-            home_dir=os.getenv('HOME')
+            home_dir=os.path.expanduser("~")
             if home_dir is not None:
-                self.SCMD2+=['-personal',os.path.join(home_dir,'Salome/resources/CatalogModulePersonnel.xml')]
+                self.SCMD2+=['-personal',os.path.join(home_dir,'Salome','resources','CatalogModulePersonnel.xml')]
             self.SCMD2+=[')']
         if 'study' in self.args['embedded']:
             self.SCMD2+=['--with','SALOMEDS','(',')']
@@ -300,13 +300,12 @@ class SessionServer(Server):
         if 'pyContainer' in self.args['standalone'] or 'pyContainer' in self.args['embedded']:
             raise Exception('Python containers no longer supported')
         if self.args['gui']:
-            session_gui = True
-            if 'session_gui' in self.args:
-                session_gui = self.args['session_gui']
-            if session_gui:
-                self.SCMD2+=['GUI']
-                if self.args['splash']:
-                    self.SCMD2+=['SPLASH']
+            session_gui = self.args.get('session_gui', True)
+            if not session_gui:
+                self.SCMD2+=['--hide-desktop']
+            else:
+                if not self.args['splash']:
+                    self.SCMD2+=['--hide-splash']
                     pass
                 if self.args['study_hdf'] is not None:
                     self.SCMD2+=['--study-hdf=%s'%self.args['study_hdf']]
@@ -319,7 +318,7 @@ class SessionServer(Server):
                 pass
             pass
         if self.args['noexcepthandler']:
-            self.SCMD2+=['noexcepthandler']
+            self.SCMD2+=['--no-exception-handler']
         if 'user_config' in self.args:
             self.SCMD2+=['--resources=%s'%self.args['user_config']]
         if 'modules' in self.args:
@@ -399,8 +398,10 @@ class LauncherServer(Server):
                              '(','--salome_session','theSession',')']
             if 'moduleCatalog' in self.args['embedded']:
                 self.SCMD1+=['--with','ModuleCatalog','(','-common']
-                self.SCMD2+=['-personal',
-                             '${HOME}/Salome/resources/CatalogModulePersonnel.xml',')']
+                home_dir=os.path.expanduser("~")
+                if home_dir is not None:
+                    self.SCMD2=['-personal',os.path.join(home_dir,'Salome','resources','CatalogModulePersonnel.xml')]
+                self.SCMD2+=[')']
             if 'study' in self.args['embedded']:
                 self.SCMD2+=['--with','SALOMEDS','(',')']
             if 'cppContainer' in self.args['embedded']:
@@ -750,7 +751,7 @@ def useSalome(args, modules_list, modules_root_dir):
                 if 'pyscript' in args:
                     toimport = args['pyscript']
         from salomeContextUtils import formatScriptsAndArgs
-        command = formatScriptsAndArgs(toimport)
+        command = formatScriptsAndArgs(toimport, escapeSpaces=True)
         if command:
             proc = subprocess.Popen(command, shell=True)
             addToKillList(proc.pid, command, args['port'])
@@ -810,7 +811,8 @@ def main(exeName=None):
         sys.exit(1)
 
     from salome_utils import getHostName
-    args, modules_list, modules_root_dir = setenv.get_config(exeName=exeName)
+    keep_env = not os.getenv('SALOME_PLEASE_SETUP_ENVIRONMENT_AS_BEFORE')
+    args, modules_list, modules_root_dir = setenv.get_config(exeName=exeName, keepEnvironment=keep_env)
     print("runSalome running on %s" % getHostName())
 
     kill_salome(args)
@@ -828,7 +830,7 @@ def main(exeName=None):
         pass
     # --
     #setenv.main()
-    setenv.set_env(args, modules_list, modules_root_dir)
+    setenv.set_env(args, modules_list, modules_root_dir, keepEnvironment=keep_env)
     clt = useSalome(args, modules_list, modules_root_dir)
     return clt,args