X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fappliskel%2Fsalome;h=e397ba801abe419de1e4f4f770122855019f4ccb;hb=ab8bd74a4dd55cd7c24c05e634ea9aff25bffb21;hp=d31f6c1f1470e86615bb8a2f196fa128f079fe1d;hpb=0dc32a7f4a56850be119031ebd4643d2cbe2e91d;p=modules%2Fkernel.git diff --git a/bin/appliskel/salome b/bin/appliskel/salome index d31f6c1f1..e397ba801 100755 --- a/bin/appliskel/salome +++ b/bin/appliskel/salome @@ -1,112 +1,29 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 import os +import subprocess import sys -import glob -# 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 __listDirectory(path): - allFiles = [] - for root, dirs, files in os.walk(path): - configFileNames = glob.glob(os.path.join(root,'*.cfg')) + glob.glob(os.path.join(root,'*.sh')) - allFiles += configFileNames - return allFiles -# - -def __getConfigFileNamesDefault(): - absoluteAppliPath = os.getenv('ABSOLUTE_APPLI_PATH','') - envdDir = absoluteAppliPath + '/env.d' - if os.path.isdir(envdDir): - configFileNames = __listDirectory(envdDir) - else: - configFileNames = [] - - return configFileNames -# - -def __getConfigFileNames(args): - # special case: configuration files are provided by user - # Search for command-line argument(s) --config=file1,file2,..., filen - # Search for command-line argument(s) --config=dir1,dir2,..., dirn - configOptionPrefix = "--config=" - configArgs = [ str(x) for x in args if str(x).startswith(configOptionPrefix) ] - - if len(configArgs) == 0: - return __getConfigFileNamesDefault(), args - - args = [ x for x in args if not x.startswith(configOptionPrefix) ] - allLists = [ x.replace(configOptionPrefix, '') for x in configArgs ] - - configFileNames = [] - for currentList in allLists: - elements = currentList.split(',') - for elt in elements: - elt = os.path.realpath(os.path.expanduser(elt)) - if os.path.isdir(elt): - configFileNames += __listDirectory(elt) - else: - configFileNames += [elt] - - return configFileNames, args -# +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:] - - # Identify application path then locate configuration files - __initialize() - configFileNames, args = __getConfigFileNames(args) - - 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 - from salomeRunner import SalomeRunner, SalomeRunnerException - try: - runner = SalomeRunner(configFileNames) - - # Here set specific variables, if needed - # runner.addToPath('mypath') - # runner.addToLdLibraryPath('myldlibrarypath') - # runner.addToPythonPath('mypythonpath') - # runner.setEnviron('myvarname', 'value') - - - # 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) -# + main(sys.argv[1:])