From 56c74d69fd4fd80a99154c700eed7db01a8a387d Mon Sep 17 00:00:00 2001 From: crouzet Date: Mon, 12 Sep 2022 14:42:01 +0200 Subject: [PATCH] add the possibility to bypass the reinitialisation of paths with a dedicated variable called reinitialise_paths --- src/fileEnviron.py | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/fileEnviron.py b/src/fileEnviron.py index 5afc9e7..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' % -- 2.39.2