Salome HOME
Merge branch 'V7_5_BR'
[modules/kernel.git] / bin / appliskel / salome
index baeead6c44428e6a8daf83af1d7f1f4b928f478a..1bcae77fa2d19aecd706a525e147ba81925521f1 100755 (executable)
@@ -1,6 +1,6 @@
 #! /usr/bin/env python
 
-# Copyright (C) 2013-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+# 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
 import os
 import sys
 
-# Preliminary work to initialize path to SALOME Python modules
-def __initialize():
-  currentPath = os.path.dirname( os.path.abspath( __file__ ) )
-  homePath = os.path.realpath(os.path.expanduser('~'))
-  appliPath = os.path.relpath(currentPath, homePath)
-
-  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
-
-  sys.path[:0] = [absoluteAppliPath+'/bin/salome']
-
-  # define folder to store omniorb config (initially in virtual application folder)
-  try:
-    from salomeLauncherUtils import setOmniOrbUserPath
-    setOmniOrbUserPath()
-  except Exception, e:
-    print e
-    sys.exit(1)
-# End of preliminary work
-
 def main(args):
   # Identify application path then locate configuration files
-  __initialize()
+  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 args == ['--help']:
-    from salomeRunner import usage
+  if len(args) == 1 and args[0] in ['--help', 'help', '-h', '--h']:
+    from salomeContext import usage
     usage()
     sys.exit(0)
 
-  from salomeLauncherUtils import getConfigFileNames
+  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 SalomeRunner which parses configFileNames to initialize environment
+  # Create a SalomeContext which parses configFileNames to initialize environment
+  from salomeContextUtils import SalomeContextException
   try:
-    from salomeRunner import SalomeRunner, SalomeRunnerException
-    runner = SalomeRunner(configFileNames)
+    from salomeContext import SalomeContext
+    context = SalomeContext(configFileNames)
 
     # Here set specific variables, if needed
-    # runner.addToPath('mypath')
-    # runner.addToLdLibraryPath('myldlibrarypath')
-    # runner.addToPythonPath('mypythonpath')
-    # runner.setEnviron('myvarname', 'value')
+    # context.addToPath('mypath')
+    # context.addToLdLibraryPath('myldlibrarypath')
+    # context.addToPythonPath('mypythonpath')
+    # context.setVariable('myvarname', 'value')
 
     # Start SALOME, parsing command line arguments
-    runner.go(args)
-    print 'Thank you for using SALOME!'
-
-  except SalomeRunnerException, e:
+    (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)