X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FfileEnviron.py;h=dbf0938545537fbe2e056f8434032a343a34c19e;hb=56c74d69fd4fd80a99154c700eed7db01a8a387d;hp=3fe41c87945290dc5524abfb57bf98f015cc91e8;hpb=e6952ef3b2bfaa6716a915ecb49700f7c32f1429;p=tools%2Fsat.git diff --git a/src/fileEnviron.py b/src/fileEnviron.py index 3fe41c8..dbf0938 100644 --- a/src/fileEnviron.py +++ b/src/fileEnviron.py @@ -489,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 @@ -518,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' % @@ -571,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' % @@ -761,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 @@ -835,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 @@ -904,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 @@ -937,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