def _exec_ctx()

in terranova/binds.py [0:0]


    def _exec_ctx(self, *args, **kwargs) -> ContextManager[RunningCommand]:
        # Predicate for allowed env vars
        def is_allowed_env_var(env_var: str) -> bool:
            return (
                env_var.startswith("TF_")
                or env_var.startswith("TERRANOVA_")
                # Implicit credentials for s3 backend
                or env_var.startswith("AWS_")
                # Forward asdf for shims support
                or env_var.startswith("ASDF_")
                or env_var in ["HOME", "PATH"]
            )

        # Copy allowed env vars
        env = {
            key: value for key, value in os.environ.items() if is_allowed_env_var(key)
        }

        # Bind variables
        if self.__variables:
            for key, value in self.__variables.items():
                env[f"TF_VAR_{key}"] = value

        # Bind plugin cache dir
        env["TF_PLUGIN_CACHE_DIR"] = (
            SharedContext.terraform_shared_plugin_cache_dir().absolute().as_posix()
        )

        # Enable debug
        if SharedContext.is_verbose_enabled():
            env["TF_LOG"] = "DEBUG"

        # Set all
        kwargs["_env"] = env
        if kwargs.get("_inherit"):
            del kwargs["_inherit"]
            kwargs["_in"] = sys.stdin
            kwargs["_out"] = sys.stdout
            kwargs["_err"] = sys.stderr
        kwargs["_cwd"] = self.__work_dir
        return super()._exec_ctx(*args, **kwargs)