X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fappliskel%2Fsalome;h=e397ba801abe419de1e4f4f770122855019f4ccb;hb=ab8bd74a4dd55cd7c24c05e634ea9aff25bffb21;hp=ae57dae12f78c471fa4f96f7d4eaad80e01822ac;hpb=d9c3812022bf47f170380167372a7b61e7b1daa4;p=modules%2Fkernel.git diff --git a/bin/appliskel/salome b/bin/appliskel/salome index ae57dae12..e397ba801 100755 --- a/bin/appliskel/salome +++ b/bin/appliskel/salome @@ -1,113 +1,29 @@ -#! /usr/bin/env python - -# Copyright (C) 2013-2014 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 __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) +MODULES = [] - 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) -# + ''' 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:])