Salome HOME
0023629: [CEA] KERNEL_SALOME_CONCURRENT_TestConcurrentSession: does not return
[modules/kernel.git] / bin / appliskel / salome
index 1bcae77fa2d19aecd706a525e147ba81925521f1..e397ba801abe419de1e4f4f770122855019f4ccb 100755 (executable)
@@ -1,72 +1,29 @@
-#! /usr/bin/env python
-
-# Copyright (C) 2013-2015  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
+#! /usr/bin/env python3
 
 import os
+import subprocess
 import sys
 
-def main(args):
-  # Identify application path then locate configuration files
-  currentPath = os.path.realpath(os.path.dirname(os.path.abspath(__file__)))
-  launcherFile = os.path.basename(__file__)
-  from salome_starter import initialize
-  initialize(currentPath, launcherFile)
-
-  if len(args) == 1 and args[0] in ['--help', 'help', '-h', '--h']:
-    from salomeContext import usage
-    usage()
-    sys.exit(0)
+MODULES = []
 
-  from salomeContextUtils import getConfigFileNames
-  configFileNames, args, unexisting = getConfigFileNames(args, checkExistence=True)
-  if len(unexisting) > 0:
-    print "ERROR: unexisting configuration file(s): " + ', '.join(unexisting)
-    sys.exit(1)
 
-  # Create a SalomeContext which parses configFileNames to initialize environment
-  from salomeContextUtils import SalomeContextException
-  try:
-    from salomeContext import SalomeContext
-    context = SalomeContext(configFileNames)
-
-    # Here set specific variables, if needed
-    # context.addToPath('mypath')
-    # context.addToLdLibraryPath('myldlibrarypath')
-    # context.addToPythonPath('mypythonpath')
-    # context.setVariable('myvarname', 'value')
-
-    # Start SALOME, parsing command line arguments
-    (out, err), returncode = context.runSalome(args)
-    if out:
-      sys.stdout.write(out)
-    if err:
-      sys.stderr.write(err)
-    #print 'Thank you for using SALOME!'
-    sys.exit(returncode)
-  except SalomeContextException, e:
-    import logging
-    logging.getLogger("salome").error(e)
-    sys.exit(1)
-#
+def main(args):
+    ''' Load modules then launch salome
+    '''
+    if MODULES:
+        env_modules = MODULES[:]
+        env_modules_option = "--with-env-modules="
+        env_modules_l = [x for x in args if x.startswith(env_modules_option)]
+        if env_modules_l:
+            env_modules += env_modules_l[-1][len(env_modules_option):].split(',')
+            args = [x for x in args if not x.startswith(env_modules_option)]
+        env_modules_option += "%s" % ','.join(env_modules)
+        args.append(env_modules_option)
+
+    appliPath = os.path.dirname(os.path.realpath(__file__))
+    proc = subprocess.Popen([os.path.join(appliPath, '.salome_run')] + args, close_fds=True)
+    out, err = proc.communicate()
+    sys.exit(proc.returncode)
 
 if __name__ == "__main__":
-  args = sys.argv[1:]
-  main(args)
-#
+    main(sys.argv[1:])