Salome HOME
0023629: [CEA] KERNEL_SALOME_CONCURRENT_TestConcurrentSession: does not return
[modules/kernel.git] / bin / appliskel / salome
index 41e0883dc28270418112226f9eea35db12b1d856..e397ba801abe419de1e4f4f770122855019f4ccb 100755 (executable)
@@ -1,91 +1,29 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 import os
+import subprocess
 import sys
 
-# Preliminary work to initialize path to SALOME Python modules
-def __initialize():
-  currentPath = os.path.dirname(__file__)
-  homePath = os.path.realpath(os.path.expanduser('~'))
-  appliPath = os.path.relpath(currentPath, homePath)
+MODULES = []
 
-  pattern = "/bin/salome/appliskel"
-  if appliPath.endswith(pattern):
-    appliPath = appliPath[:-len(pattern)]
-
-  absoluteAppliPath = os.path.join(homePath, appliPath)
-  os.environ['APPLI'] = appliPath # needed to convert .sh environment files
-  os.environ['ABSOLUTE_APPLI_PATH'] = absoluteAppliPath
-
-  # define folder to store omniorb config (initially in virtual application folder)
-  #omniorbUserPath = os.path.join(homePath, ".salomeConfig/USERS")
-  omniorbUserPath = os.path.join(homePath, appliPath, "USERS")
-  os.environ['OMNIORB_USER_PATH'] = omniorbUserPath
-  if not os.path.exists(omniorbUserPath):
-    os.makedirs(omniorbUserPath)
-
-  sys.path[:0] = [absoluteAppliPath+'/bin/salome']
-# End of preliminary work
 
 def main(args):
-  # Identify application path then locate configuration files
-  __initialize()
-
-  if args == ['--help']:
-    from salomeRunner import usage
-    usage()
-    sys.exit(0)
-
-
-  from salomeLauncherUtils import getConfigFileNames
-  configFileNames, args = getConfigFileNames(args)
-
-  # WHY? Incorrect/Inexisting files are supposed to be ignored by SalomeRunner.
-  # Might simply need bug fix; please provide test case.
-  error=False
-  for aFile in configFileNames:
-    if not os.path.isfile(aFile):
-      print "ERROR: inexisting file: "+aFile
-      error=True
-  if error:
-    sys.exit(1)
-
-
-  # Create a SalomeRunner which parses configFileNames to initialize environment
-  try:
-    from salomeRunner import SalomeRunner, SalomeRunnerException
-    runner = SalomeRunner(configFileNames)
-
-    # Here set specific variables, if needed
-    # runner.addToPath('mypath')
-    # runner.addToLdLibraryPath('myldlibrarypath')
-    # runner.addToPythonPath('mypythonpath')
-    # runner.setEnviron('myvarname', 'value')
-
-    kernel_root_dir = os.getenv("KERNEL_ROOT_DIR")
-    if kernel_root_dir:
-      runner.addToLdLibraryPath(os.path.join(kernel_root_dir, "lib/salome"))
-
-    gui_root_dir = os.getenv("GUI_ROOT_DIR")
-    if gui_root_dir:
-      runner.addToLdLibraryPath(os.path.join(gui_root_dir, "lib/salome"))
-
-    paravis_root_dir = os.getenv("PARAVIS_ROOT_DIR")
-    if paravis_root_dir:
-      runner.addToLdLibraryPath(os.path.join(paravis_root_dir, "lib/salome"))
-
-
-    # Start SALOME, parsing command line arguments
-    runner.go(args)
-    print 'Thank you for using SALOME!'
-
-  except SalomeRunnerException, e:
-    import logging
-    logging.getLogger("salome").error(e)
-    sys.exit(1)
-#
+    ''' 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:])