-#! /usr/bin/env python
-
-# Copyright (C) 2013-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+#! /usr/bin/env python3
+# Copyright (C) 2013-2021 CEA/DEN, EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
-import os
+import salome_common
import sys
-def __detectAppliPath(fromPath):
- detection_criterion = "USERS" # the application folder is found if it contains a USERS subfolder
-
- users_folder = os.path.join(fromPath, detection_criterion)
- if os.path.isdir(users_folder):
- return fromPath
-
- pattern = "/bin/salome/appliskel"
- if fromPath.endswith(pattern):
- currentPath = __detectAppliPath(fromPath[:-len(pattern)])
- if not currentPath is None:
- return currentPath
-
- if sys.platform.startswith("linux"):
- filename = os.path.basename(__file__)
- link_target = os.readlink(os.path.join(fromPath,filename)) # LINUX ONLY
- currentPath = os.path.dirname(os.path.abspath(link_target))
- return __detectAppliPath(currentPath)
-
- return None
-#
-
-# 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 = __detectAppliPath(currentPath)
-
- if appliPath is None:
- print "ERROR: Unable to find application folder"
- sys.exit(0)
-
- appliPath = os.path.relpath(appliPath, homePath)
- 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 salomeContextUtils 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()
-
- if args == ['--help']:
- from salomeContext import usage
- usage()
- sys.exit(0)
-
- 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
- try:
- from salomeContext import SalomeContext, SalomeContextException
- 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
- context.runSalome(args)
- #print 'Thank you for using SALOME!'
-
- except SalomeContextException, e:
- import logging
- logging.getLogger("salome").error(e)
- sys.exit(1)
-#
-
if __name__ == "__main__":
- args = sys.argv[1:]
- main(args)
-#
+ salome_common.main(sys.argv[1:])