+ """Append a variable"""
+ def appendVariable(self, name, value, separator=os.pathsep):
+ if value == '':
+ return
+
+ value = os.path.expandvars(value) # expand environment variables
+ env = os.getenv(name, None)
+ if env is None:
+ os.environ[name] = value
+ else:
+ os.environ[name] = env + separator + value
+ return
+
+ """Remove value from environment variable"""
+ def removeFromVariable(self, name, value, separator=os.pathsep):
+ if value == '':
+ return
+
+ value = os.path.expandvars(value) # expand environment variables
+ self.getLogger().debug("Remove from %s: %s", name, value)
+ env = os.getenv(name, None)
+ if env == value:
+ env = ''
+ else:
+ # env = env.removeprefix(value + separator) (Python >= 3.9)
+ str = value + separator
+ if env.startswith(str):
+ env = env[len(str):]
+ # env = env.removesuffix(separator + value) (Python >= 3.9)
+ str = separator + value
+ if env.endswith(str):
+ env = env[:-len(str)]
+ env = env.replace(separator + value + separator, ':')
+
+ os.environ[name] = env
+ #
+