X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FfileEnviron.py;h=dbf0938545537fbe2e056f8434032a343a34c19e;hb=56c74d69fd4fd80a99154c700eed7db01a8a387d;hp=d9ba063c014574478b98b77608b496a3e8f1875f;hpb=f0c1fa827be3842a11b6b9520b2bef2542780e58;p=tools%2Fsat.git diff --git a/src/fileEnviron.py b/src/fileEnviron.py index d9ba063..dbf0938 100644 --- a/src/fileEnviron.py +++ b/src/fileEnviron.py @@ -240,9 +240,6 @@ class FileEnviron(object): def value_filter(self, value): res=value - # on windows platform, replace / by \ - if src.architecture.is_windows(): - res = value.replace("/","\\") return res @@ -461,7 +458,6 @@ class LauncherFileEnviron(FileEnviron): self._do_init(output, environ) self.python_version=self.environ.get("sat_python_version") self.bin_kernel_root_dir=self.environ.get("sat_bin_kernel_install_dir") - self.app_root_dir=self.environ.get("sat_app_root_dir") # four whitespaces for first indentation in a python script self.indent=" " @@ -493,6 +489,10 @@ class LauncherFileEnviron(FileEnviron): if not self.environ.is_defined("PATH"): self.environ.set("PATH","") + if self.init_path: + self.output.write('\n'+self.indent) + self.add_echo("Modifier cette variable pour ne pas réinitialiser les PATHS") + self.output.write(self.indent+'reinitialise_paths=True\n\n') def add_echo(self, text): """Add a comment @@ -522,23 +522,28 @@ class LauncherFileEnviron(FileEnviron): if separator in value: raise Exception(msg % (key, value, separator)) - if (self.init_path and (not self.environ.is_defined(key))): + is_key_defined=self.environ.is_defined(key) + conditional_reinit=False + if (self.init_path and (not is_key_defined)): # reinitialisation mode set to true (the default) # for the first occurrence of key, we set it. # therefore key will not be inherited from environment + self.output.write(self.indent+'if reinitialise_paths:\n'+self.indent) self.set(key, value) - return + self.output.write(self.indent+'else:\n'+self.indent) + conditional_reinit=True # in this case do not register value in self.environ a second time # in all other cases we use append (except if value is already the key do_append=True - if self.environ.is_defined(key): + if is_key_defined: value_list = self.environ.get(key).split(sep) # rem : value cannot be expanded (unlike bash/bat case) - but it doesn't matter. if value in value_list: do_append=False # value is already in key path : we don't append it again if do_append: - self.environ.append_value(key, value,sep) # register value in self.environ + if not conditional_reinit: + self.environ.append_value(key, value,sep) # register value in self.environ if key in self.specialKeys.keys(): #for these special keys we use the specific salomeContext function self.output.write(self.begin+'addTo%s(r"%s")\n' % @@ -575,22 +580,28 @@ class LauncherFileEnviron(FileEnviron): if separator in value: raise Exception(msg % (key, value, separator)) - if (self.init_path and (not self.environ.is_defined(key))): + is_key_defined=self.environ.is_defined(key) + conditional_reinit=False + if (self.init_path and (not is_key_defined)): # reinitialisation mode set to true (the default) # for the first occurrence of key, we set it. # therefore key will not be inherited from environment + self.output.write(self.indent+'if reinitialise_paths:\n'+self.indent) self.set(key, value) - return + self.output.write(self.indent+'else:\n'+self.indent) + conditional_reinit=True # in this case do not register value in self.environ a second time + # in all other cases we use append (except if value is already the key do_append=True - if self.environ.is_defined(key): + if is_key_defined: value_list = self.environ.get(key).split(sep) # rem : value cannot be expanded (unlike bash/bat case) - but it doesn't matter. if value in value_list: do_append=False # value is already in key path : we don't append it again if do_append: - self.environ.append_value(key, value,sep) # register value in self.environ + if not conditional_reinit: + self.environ.append_value(key, value,sep) # register value in self.environ if key in self.specialKeys.keys(): #for these special keys we use the specific salomeContext function self.output.write(self.begin+'addTo%s(r"%s")\n' % @@ -733,6 +744,15 @@ tcl_header="""\ bash_header="""\ #!/bin/bash +if [ "$BASH" = "" ] +then + # check that the user is not using another shell + echo + echo "Warning! SALOME environment not initialized" + echo "You must run this script in a bash shell." + echo "As you are using another shell. Please first run: bash" + echo +fi ########################################################################## # # This line is used only in case of a sat package @@ -756,7 +776,7 @@ launcher_header2="""\ import os import sys import subprocess - +import os.path # Add the pwdPath to able to run the launcher after unpacking a package # Used only in case of a salomeTools package @@ -830,7 +850,7 @@ launcher_header3="""\ import os import sys import subprocess - +import os.path # Add the pwdPath to able to run the launcher after unpacking a package # Used only in case of a salomeTools package @@ -899,6 +919,27 @@ def main(args): """ launcher_tail_py2="""\ + #[hook to integrate in launcher additionnal user modules] + + # Load all files extra.env.d/*.py and call the module's init routine] + + extradir=out_dir_Path + r"/extra.env.d" + + if os.path.exists(extradir): + import imp + sys.path.insert(0, os.path.join(os.getcwd(), extradir)) + for filename in sorted( + filter(lambda x: os.path.isfile(os.path.join(extradir, x)), + os.listdir(extradir))): + + if filename.endswith(".py"): + f = os.path.join(extradir, filename) + module_name = os.path.splitext(os.path.basename(f))[0] + fp, path, desc = imp.find_module(module_name) + module = imp.load_module(module_name, fp, path, desc) + module.init(context, out_dir_Path) + + #[manage salome doc command] if len(args) >1 and args[0]=='doc': _showDoc(args[1:]) return @@ -932,6 +973,27 @@ if __name__ == "__main__": """ launcher_tail_py3="""\ + #[hook to integrate in launcher additionnal user modules] + + # Load all files extra.env.d/*.py and call the module's init routine] + + extradir=out_dir_Path + r"/extra.env.d" + + if os.path.exists(extradir): + import imp + sys.path.insert(0, os.path.join(os.getcwd(), extradir)) + for filename in sorted( + filter(lambda x: os.path.isfile(os.path.join(extradir, x)), + os.listdir(extradir))): + + if filename.endswith(".py"): + f = os.path.join(extradir, filename) + module_name = os.path.splitext(os.path.basename(f))[0] + fp, path, desc = imp.find_module(module_name) + module = imp.load_module(module_name, fp, path, desc) + module.init(context, out_dir_Path) + + #[manage salome doc command] if len(args) >1 and args[0]=='doc': _showDoc(args[1:]) return