def set_env_var()

in src/core/src/bootstrap/EnvLayer.py [0:0]


    def set_env_var(self, var_name, var_value=str(), raise_if_not_success=False):
        # type: (str, str, bool) -> None
        """ Sets an environment variable with var_name and var_value in /etc/environment. If it already exists, it is overwritten. """
        try:
            environment_vars = self.file_system.read_with_retry(self.etc_environment_file_path)
            if environment_vars is None:
                print("Error occurred while setting environment variable: File not found. [Variable={0}][Value={1}][Path={2}]".format(str(var_name), str(var_value), self.etc_environment_file_path))
                return

            environment_vars_lines = environment_vars.strip().split("\n")

            if var_value is None or var_value == str():
                # remove environment variable
                regex = re.compile('{0}=.+'.format(var_name))
                search = regex.search(environment_vars)
                if search is None:
                    return

                group = search.group()
                environment_vars = environment_vars.replace(group, '').replace("\n\n", "\n")
                self.file_system.write_with_retry(self.etc_environment_file_path, environment_vars, "w")
                return

            formatted_env_var = "{0}={1}".format(var_name, str(var_value))
            if var_name not in environment_vars:
                self.file_system.write_with_retry(self.etc_environment_file_path, "\n" + formatted_env_var)
            else:
                # Update the value of the existing setting
                for env_var in environment_vars_lines:
                    if var_name not in str(env_var):
                        continue

                    environment_vars = environment_vars.replace(str(env_var), formatted_env_var)
                    break

                self.file_system.write_with_retry(self.etc_environment_file_path, environment_vars, 'w')

        except Exception as error:
            print("Error occurred while setting environment variable [Variable={0}][Value={1}][Exception={2}]".format(str(var_name), str(var_value), repr(error)))
            if raise_if_not_success:
                raise