Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tenv failing with pre-commit #328

Open
kvendingoldo opened this issue Jan 2, 2025 · 12 comments
Open

tenv failing with pre-commit #328

kvendingoldo opened this issue Jan 2, 2025 · 12 comments
Assignees
Labels
bug Something isn't working TENV_DETACHED_PROXY

Comments

@kvendingoldo
Copy link
Collaborator

kvendingoldo commented Jan 2, 2025

Describe the bug
tenv fails locally with pre-commit, when export TENV_DETACHED_PROXY=false is not set.

To Reproduce

  1. install pre-commit and https://github.com/antonbabenko/pre-commit-terraform?tab=readme-ov-file#how-to-install
  2. create new git repo via git init
  3. create file main.tf:
locals {}
provider "aws" {
  region = "us-west-2" # Specify the AWS region
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0" # Amazon Linux 2 AMI
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleInstance"
  }

  provisioner "local-exec" {
command = "echo Instance ${self.id} created"
  }
}

output "instance_id" {
  value = aws_instance.example.id
}
  1. add it to git repo via git add -A && git commit -m "test"
  2. run pre-commit run --all-files (it will fail)
  3. set export TENV_DETACHED_PROXY=false
  4. run pre-commit run --all-files (it won't fail)

Expected behavior
tenv shouldn't fail with pre-commit, without export TENV_DETACHED_PROXY=false

Environment (please complete the following information):

  • OS: macos
  • tenv version: 4.1.0, 4.2.0-beta1
@kvendingoldo
Copy link
Collaborator Author

A full log of it PCT_LOG=trace pre-commit run --all-files > log

Terraform fmt............................................................�[41mFailed�[m
�[2m- hook id: terraform_fmt�[m
�[2m- exit code: 1�[m

BASH path: '/bin/bash'
BASH_VERSION: 3.2.57(1)-release
BASHOPTS: 
OSTYPE: darwin24
��[2m
trace: 
       _common.sh:23: �[0mHOOK_ID=terraform_fmt.sh
��[2m
trace: 
       _common.sh:24: �[0mreadonly HOOK_ID=terraform_fmt
��[2m
trace: 
       _common.sh:24: �[0mHOOK_ID=terraform_fmt
�[2m
trace: 
       terraform_fmt.sh:59: �[0m'[' /Users/asharov/.cache/pre-commit/repoam2ijnxu/hooks/terraform_fmt.sh '!=' /Users/asharov/.cache/pre-commit/repoam2ijnxu/hooks/terraform_fmt.sh ']'
�[2m
trace: 
       terraform_fmt.sh:59: �[0mmain main.tf
�[2m
trace: main main
       terraform_fmt.sh:11: �[0mcommon::initialize /Users/asharov/.cache/pre-commit/repoam2ijnxu/hooks
�[2m
trace: common::initialize main main
       _common.sh:32: �[0mlocal -r script_dir=/Users/asharov/.cache/pre-commit/repoam2ijnxu/hooks
�[2m
trace: common::initialize main main
       _common.sh:35: �[0m. /Users/asharov/.cache/pre-commit/repoam2ijnxu/hooks/../lib_getopt
�[2m
trace: main main
       terraform_fmt.sh:12: �[0mcommon::parse_cmdline main.tf
�[2m
trace: common::parse_cmdline main main
       _common.sh:55: �[0mARGS=()
�[2m
trace: common::parse_cmdline main main
       _common.sh:55: �[0mHOOK_CONFIG=()
�[2m
trace: common::parse_cmdline main main
       _common.sh:55: �[0mFILES=()
�[2m
trace: common::parse_cmdline main main
       _common.sh:57: �[0mTF_INIT_ARGS=()
�[2m
trace: common::parse_cmdline main main
       _common.sh:59: �[0mENV_VARS=()
�[2m
trace: common::parse_cmdline main main
       _common.sh:61: �[0mlocal argv
��[2m
trace: common::parse_cmdline main main
       _common.sh:63: �[0mgetopt -o a:,h:,i:,e: --long args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars: -- main.tf
��[2m
trace: getopt common::parse_cmdline main main
       lib_getopt:485: �[0m_getopt_version_check
��[2m
trace: _getopt_version_check getopt common::parse_cmdline main main
       lib_getopt:471: �[[[ -z 3.2.57(1)-release ]]
��[2m
trace: _getopt_version_check getopt common::parse_cmdline main main
       lib_getopt:477: �[[[ 3.2.57(1)-release < 2.05b ]]
��[2m
trace: _getopt_version_check getopt common::parse_cmdline main main
       lib_getopt:482: �[return 0
��[2m
trace: getopt common::parse_cmdline main main
       lib_getopt:486: �[0m_getopt_main -o a:,h:,i:,e: --long args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars: -- main.tf
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:39: �[0mdeclare parsed status
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:40: �[0mdeclare short long= name flags=
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:41: �[0mdeclare have_short=false
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:53: �[0m[[ -n '' ]]
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:53: �[0m[[ -o == [^-]* ]]
���[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:64: �[0m_getopt_parse getopt ahl:n:o:qQs:TuV alternative,help,longoptions:,name:,options:,quiet,quiet-output,shell:,test,version p -o a:,h:,i:,e: --long args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars: -- main.tf
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1declare name=getopt short=ahl:n:o:qQs:TuV long=alternative,help,longoptions:,name:,options:,quiet,quiet-output,shell:,test,version flags=p
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1shift 4
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1declare -a longarr
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1_getopt_split longarr alternative,help,longoptions:,name:,options:,quiet,quiet-output,shell:,test,version
���[2m
trace: _getopt_split _getopt_parse _getopt_main getopt common::parse_cmdline main main
     declare IFS=,
���[2m
trace: _getopt_split,_getopt_parse,_getopt_main,getopt,common::parse_cmdline,main,main
     eval 'longarr=( $2 )'
����[2m
trace: _getopt_split,_getopt_parse,_getopt_main,getopt,common::parse_cmdline,main,main
    longarr=($2)
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1longarr=("${longarr[@]/#/--}")
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1longarr=("${longarr[@]%:}")
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1longarr=("${longarr[@]%:}")
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1declare -a opts params
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1declare o alt_recycled=false error=0
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1[[ 6 -gt 0 ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2case $1 in
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ p == *a* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2o=-o
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ ahl:n:o:qQs:TuV == *\o::* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ ahl:n:o:qQs:TuV == *\o:* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ 2 -gt 2 ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ 6 -ge 2 ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2shift
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2opts=("${opts[@]}" "$o" "$1")
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3shift
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1[[ 4 -gt 0 ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2case $1 in
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2o=--long
����[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:_getopt_resolve_abbrev --long --alternative --help --longoptions --name --options --quiet --quiet-output --shell --test --version
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main declare a q=--long
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main matches=()
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main declare -a matches
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main shift
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\a\l\t\e\r\n\a\t\i\v\e ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --alternative == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\h\e\l\p ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --help == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\l\o\n\g\o\p\t\i\o\n\s ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --longoptions == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main matches=("${matches[@]}" "$a")
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\n\a\m\e ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --name == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\o\p\t\i\o\n\s ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --options == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\q\u\i\e\t ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --quiet == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\q\u\i\e\t\-\o\u\t\p\u\t ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --quiet-output == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\s\h\e\l\l ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --shell == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\t\e\s\t ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --test == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main for a in '"$@"'
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --long == \-\-\v\e\r\s\i\o\n ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ --version == \-\-\l\o\n\g* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main [[ p == *a* ]]
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main case ${#matches[@]} in
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main printf %s --longoptions
����[2m
trace: _getopt_resolve_abbrev _getopt_parse _getopt_main getopt common::parse_cmdline main return 0
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2o=--longoptions
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ ,alternative,help,longoptions:,name:,options:,quiet,quiet-output,shell:,test,version, == *,\l\o\n\g\o\p\t\i\o\n\s,* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ ,alternative,help,longoptions:,name:,options:,quiet,quiet-output,shell:,test,version, == *,\l\o\n\g\o\p\t\i\o\n\s\:\:,* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ ,alternative,help,longoptions:,name:,options:,quiet,quiet-output,shell:,test,version, == *,\l\o\n\g\o\p\t\i\o\n\s\:,* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2[[ 4 -ge 2 ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2shift
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2opts=("${opts[@]}" "$o" "$1")
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2alt_recycled=false
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3shift
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:1[[ 2 -gt 0 ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2case $1 in
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2params=("${params[@]}" "${@:2}")
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:2break
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3[[ p == *Q* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3echo -n ' '
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3[[ p == *[cu]* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3[[ p == *t* ]]
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3_getopt_quote -o a:,h:,i:,e: --longoptions args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars: -- main.tf
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     declare s space= 'q='\'''
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     for s in '"$@"'
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     printf ''\''%s'\''' -o
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     space=' '
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     for s in '"$@"'
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     printf ' '\''%s'\''' a:,h:,i:,e:
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     space=' '
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     for s in '"$@"'
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     printf ' '\''%s'\''' --longoptions
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     space=' '
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     for s in '"$@"'
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     printf ' '\''%s'\''' args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars:
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     space=' '
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     for s in '"$@"'
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     printf ' '\''%s'\''' --
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     space=' '
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     for s in '"$@"'
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     printf ' '\''%s'\''' main.tf
���[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
     space=' '
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3echo
���[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:3return 0
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:64: �[0mparsed=' '\''-o'\'' '\''a:,h:,i:,e:'\'' '\''--longoptions'\'' '\''args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars:'\'' '\''--'\'' '\''main.tf'\'''
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:65: �[0mstatus=0
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:66: �[0m[[ 0 != 0 ]]
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:74: �[0meval 'set --  '\''-o'\'' '\''a:,h:,i:,e:'\'' '\''--longoptions'\'' '\''args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars:'\'' '\''--'\'' '\''main.tf'\'''
���[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:74: �[0mset -- -o a:,h:,i:,e: --longoptions args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars: -- main.tf
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:76: �[0m[[ 6 -gt 0 ]]
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:77: �[0mcase $1 in
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:95: �[0mshort=a:,h:,i:,e:
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:96: �[0mhave_short=true
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:97: �[0mshift
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:133: �[0mshift
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:76: �[0m[[ 4 -gt 0 ]]
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:77: �[0mcase $1 in
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:87: �[0mlong=args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars:
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:88: �[0mshift
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:133: �[0mshift
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:76: �[0m[[ 2 -gt 0 ]]
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:77: �[0mcase $1 in
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:129: �[0mshift
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:130: �[0mbreak
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:136: �[0mtrue
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:149: �[0m[[ a:,h:,i:,e: == -* ]]
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:154: �[0m[[ a:,h:,i:,e: == +* ]]
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:163: �[0mflags=
��[2m
trace: _getopt_main getopt common::parse_cmdline main main
       lib_getopt:165: �[0m_getopt_parse getopt a:,h:,i:,e: args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars: '' main.tf
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:18declare name=getopt short=a:,h:,i:,e: long=args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars: flags=
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:18shift 4
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:18declare -a longarr
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19_getopt_split longarr args:,hook-config:,init-args:,tf-init-args:,envs:,env-vars:
��[2m
trace: _getopt_split _getopt_parse _getopt_main getopt common::parse_cmdline main main
      declare IFS=,
��[2m
trace: _getopt_split,_getopt_parse,_getopt_main,getopt,common::parse_cmdline,main,main
      eval 'longarr=( $2 )'
���[2m
trace: _getopt_split,_getopt_parse,_getopt_main,getopt,common::parse_cmdline,main,main
     longarr=($2)
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19longarr=("${longarr[@]/#/--}")
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19longarr=("${longarr[@]%:}")
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19longarr=("${longarr[@]%:}")
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19declare -a opts params
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19declare o alt_recycled=false error=0
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19[[ 1 -gt 0 ]]
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:20case $1 in
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:32[[ '' == *i* ]]
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:32[[ '' == *p* ]]
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:33params=("${params[@]}" "$1")
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:33shift
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:19[[ 0 -gt 0 ]]
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:33[[ '' == *Q* ]]
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:34echo -n ' '
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:34[[ '' == *[cu]* ]]
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:34[[ '' == *t* ]]
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:34_getopt_quote -- main.tf
��[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
      declare s space= 'q='\'''
��[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
      for s in '"$@"'
��[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
      printf ''\''%s'\''' --
��[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
      space=' '
��[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
      for s in '"$@"'
��[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
      printf ' '\''%s'\''' main.tf
��[2m
trace: _getopt_quote _getopt_parse _getopt_main getopt common::parse_cmdline main main
      space=' '
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:35echo
��[2m
trace: _getopt_parse _getopt_main getopt common::parse_cmdline main main
       lib_getopt:35return 0
��[2m
trace: getopt common::parse_cmdline main main
       lib_getopt:487: �[0mdeclare status=0
��[2m
trace: getopt common::parse_cmdline main main
       lib_getopt:488: �[0munset -f _getopt_main _getopt_err _getopt_parse _getopt_quote _getopt_quote_csh _getopt_resolve_abbrev _getopt_split _getopt_help _getopt_version_check
��[2m
trace: getopt common::parse_cmdline main main
       lib_getopt:491: �[0mreturn 0
�[2m
trace: common::parse_cmdline main main
       _common.sh:63: �[0margv=' '\''--'\'' '\''main.tf'\'''
�[2m
trace: common::parse_cmdline main main
       _common.sh:64: �[0meval 'set --  '\''--'\'' '\''main.tf'\'''
��[2m
trace: common::parse_cmdline main main
       _common.sh:64: �[0mset -- -- main.tf
�[2m
trace: common::parse_cmdline main main
       _common.sh:66: �[0mfor argv in '"$@"'
�[2m
trace: common::parse_cmdline main main
       _common.sh:67: �[0mcase $argv in
�[2m
trace: common::parse_cmdline main main
       _common.sh:106: �[0mshift
�[2m
trace: common::parse_cmdline main main
       _common.sh:108: �[0mFILES=("$@")
�[2m
trace: common::parse_cmdline main main
       _common.sh:109: �[0mbreak
�[2m
trace: main main
       terraform_fmt.sh:13: �[0mcommon::export_provided_env_vars
�[2m
trace: common::export_provided_env_vars main main
       _common.sh:578: �[0menv_vars=("$@")
�[2m
trace: common::export_provided_env_vars main main
       _common.sh:578: �[0mlocal -a -r env_vars
�[2m
trace: common::export_provided_env_vars main main
       _common.sh:580: �[0mlocal var
�[2m
trace: common::export_provided_env_vars main main
       _common.sh:581: �[0mlocal var_name
�[2m
trace: common::export_provided_env_vars main main
       _common.sh:582: �[0mlocal var_value
�[2m
trace: main main
       terraform_fmt.sh:14: �[0mcommon::parse_and_export_env_vars
�[2m
trace: common::parse_and_export_env_vars main main
       _common.sh:122: �[0mlocal arg_idx
�[2m
trace: main main
       terraform_fmt.sh:17: �[0m'[' '' = never ']'
�[2m
trace: main main
       terraform_fmt.sh:22: �[0mcommon::per_dir_hook terraform_fmt 0 main.tf
�[2m
trace: common::per_dir_hook main main
       _common.sh:273: �[0mlocal -r hook_id=terraform_fmt
�[2m
trace: common::per_dir_hook main main
       _common.sh:274: �[0mlocal -i args_array_length=0
�[2m
trace: common::per_dir_hook main main
       _common.sh:275: �[0mshift 2
�[2m
trace: common::per_dir_hook main main
       _common.sh:276: �[0margs=()
�[2m
trace: common::per_dir_hook main main
       _common.sh:276: �[0mlocal -a args
�[2m
trace: common::per_dir_hook main main
       _common.sh:279: �[0m(( args_array_length-- > 0 ))
�[2m
trace: common::per_dir_hook main main
       _common.sh:285: �[0mfiles=("$@")
�[2m
trace: common::per_dir_hook main main
       _common.sh:285: �[0mlocal -a -r files
��[2m
trace: common::per_dir_hook main main
       _common.sh:287: �[0mcommon::get_tf_binary_path
��[2m
trace: common::get_tf_binary_path common::per_dir_hook main main
       _common.sh:462: �[0mlocal hook_config_tf_path
��[2m
trace: common::get_tf_binary_path common::per_dir_hook main main
       _common.sh:473: �[0m[[ -n '' ]]
��[2m
trace: common::get_tf_binary_path common::per_dir_hook main main
       _common.sh:478: �[0m[[ -n '' ]]
��[2m
trace: common::get_tf_binary_path common::per_dir_hook main main
       _common.sh:483: �[0m[[ -n '' ]]
��[2m
trace: common::get_tf_binary_path common::per_dir_hook main main
       _common.sh:488: �[0mcommand -v terraform
��[2m
trace: common::get_tf_binary_path common::per_dir_hook main main
       _common.sh:489: �[0mcommand -v terraform
��[2m
trace: common::get_tf_binary_path common::per_dir_hook main main
       _common.sh:490: �[0mreturn
�[2m
trace: common::per_dir_hook main main
       _common.sh:287: �[0mlocal -r tf_path=/opt/homebrew/bin/terraform
��[2m
trace: common::per_dir_hook main main
       _common.sh:290: �[0mtype -t run_hook_on_whole_repo
�[2m
trace: common::per_dir_hook main main
       _common.sh:290: �[0m'[' '' == function ']'
�[2m
trace: common::per_dir_hook main main
       _common.sh:299: �[0mlocal index=0
�[2m
trace: common::per_dir_hook main main
       _common.sh:300: �[0mfor file_with_path in '"${files[@]}"'
�[2m
trace: common::per_dir_hook main main
       _common.sh:301: �[0mfile_with_path=main.tf
��[2m
trace: common::per_dir_hook main main
       _common.sh:303: �[0mdirname main.tf
�[2m
trace: common::per_dir_hook main main
       _common.sh:303: �[0mdir_paths[index]=.
�[2m
trace: common::per_dir_hook main main
       _common.sh:305: �[0m(( index += 1 ))
�[2m
trace: common::per_dir_hook main main
       _common.sh:309: �[0mlocal change_dir_in_unique_part=false
�[2m
trace: common::per_dir_hook main main
       _common.sh:311: �[0mlocal parallelism_limit
�[2m
trace: common::per_dir_hook;main;main
       _common.sh:312: �[0mIFS=';'
�[2m
trace: common::per_dir_hook;main;main
       _common.sh:312: �[0mread -r -a configs
��[2m
trace: common::per_dir_hook main main
       _common.sh:341: �[0mcommon::get_cpu_num ''
��[2m
trace: common::get_cpu_num common::per_dir_hook main main
       _common.sh:198: �[0mlocal -r parallelism_ci_cpu_cores=
��[2m
trace: common::get_cpu_num common::per_dir_hook main main
       _common.sh:200: �[0mlocal millicpu
��[2m
trace: common::get_cpu_num common::per_dir_hook main main
       _common.sh:203: �[0m[[ -f /sys/fs/cgroup/cpu/cpu.cfs_quota_us ]]
��[2m
trace: common::get_cpu_num common::per_dir_hook main main
       _common.sh:240: �[0m[[ -f /sys/fs/cgroup/cpu.max ]]
��[2m
trace: common::get_cpu_num common::per_dir_hook main main
       _common.sh:256: �[0mnproc
�[2m
trace: common::per_dir_hook main main
       _common.sh:341: �[0mCPU=12
�[2m
trace: common::per_dir_hook main main
       _common.sh:343: �[0mlocal parallelism_disabled=false
�[2m
trace: common::per_dir_hook main main
       _common.sh:345: �[0m[[ ! -n '' ]]
�[2m
trace: common::per_dir_hook main main
       _common.sh:347: �[0mparallelism_limit=11
�[2m
trace: common::per_dir_hook main main
       _common.sh:355: �[0m[[ 11 -lt 1 ]]
�[2m
trace: common::per_dir_hook main main
       _common.sh:368: �[0mpids=()
�[2m
trace: common::per_dir_hook main main
       _common.sh:368: �[0mlocal pids
�[2m
trace: common::per_dir_hook main main
       _common.sh:371: �[0mdir_paths_unique=($(printf '%s\n' "${dir_paths[@]}" | sort -u))
��[2m
trace: common::per_dir_hook main main
       _common.sh:371: �[0mprintf '%s\n' .
��[2m
trace: common::per_dir_hook main main
       _common.sh:371: �[0msort -u
�[2m
trace: common::per_dir_hook main main
       _common.sh:371: �[0mlocal -a dir_paths_unique
�[2m
trace: common::per_dir_hook main main
       _common.sh:373: �[0mlocal length=1
�[2m
trace: common::per_dir_hook main main
       _common.sh:374: �[0mlocal last_index=0
�[2m
trace: common::per_dir_hook main main
       _common.sh:376: �[0mlocal final_exit_code=0
�[2m
trace: common::per_dir_hook main main
       _common.sh:378: �[0mshopt -qo errexit
�[2m
trace: common::per_dir_hook main main
       _common.sh:378: �[0mERREXIT_IS_SET=true
�[2m
trace: common::per_dir_hook main main
       _common.sh:380: �[0mset +e
�[2m
trace: common::per_dir_hook main main
       _common.sh:382: �[0m(( i = 0 ))
�[2m
trace: common::per_dir_hook main main
       _common.sh:382: �[0m(( i < length ))
�[2m
trace: common::per_dir_hook main main
       _common.sh:383: �[0mdir_path=.
�[2m
trace: common::per_dir_hook main main
       _common.sh:391: �[0mpids+=("$!")
�[2m
trace: common::per_dir_hook main main
       _common.sh:393: �[0m[[ false == true ]]
�[2m
trace: common::per_dir_hook main main
       _common.sh:394: �[0m[[ 0 -ne 0 ]]
�[2m
trace: common::per_dir_hook main main
       _common.sh:395: �[0m[[ 0 -eq 0 ]]
�[2m
trace: common::per_dir_hook main main
       _common.sh:397: �[0mfor pid in '"${pids[@]}"'
�[2m
trace: common::per_dir_hook main main
       _common.sh:399: �[0mlocal exit_code=0
�[2m
trace: common::per_dir_hook main main
       _common.sh:400: �[0mwait 57783
�[2m
trace: common::per_dir_hook main main
       _common.sh:385: �[0m[[ false == false ]]
�[2m
trace: common::per_dir_hook main main
       _common.sh:386: �[0mpushd .
�[2m
trace: common::per_dir_hook main main
       _common.sh:389: �[0mper_dir_hook_unique_part . false false /opt/homebrew/bin/terraform
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:42: �[0local -r dir_path=.
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:44: �[0local -r change_dir_in_unique_part=false
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:46: �[0local -r parallelism_disabled=false
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:47: �[0local -r tf_path=/opt/homebrew/bin/terraform
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:48: �[0shift 4
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:49: �[0args=("$@")
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:49: �[0local -a -r args
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:52: �[0/opt/homebrew/bin/terraform fmt
Failure during terraform call : fork/exec /opt/homebrew/bin/tenv: operation not supported by device
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:55: �[0local exit_code=1
�[2m
trace: per_dir_hook_unique_part common::per_dir_hook main main
       terraform_fmt.sh:56: �[0return 1
�[2m
trace: common::per_dir_hook main main
       _common.sh:400: �[0mexit_code=1
�[2m
trace: common::per_dir_hook main main
       _common.sh:402: �[0m'[' 1 -ne 0 ']'
�[2m
trace: common::per_dir_hook main main
       _common.sh:403: �[0mfinal_exit_code=1
�[2m
trace: common::per_dir_hook main main
       _common.sh:407: �[0munset pids
�[2m
trace: common::per_dir_hook main main
       _common.sh:382: �[0m(( i++ ))
�[2m
trace: common::per_dir_hook main main
       _common.sh:382: �[0m(( i < length ))
�[2m
trace: common::per_dir_hook main main
       _common.sh:413: �[0m[[ -n true ]]
�[2m
trace: common::per_dir_hook main main
       _common.sh:413: �[0mset -e
�[2m
trace: common::per_dir_hook main main
       _common.sh:415: �[0mexit 1

Terraform docs...........................................................�[42mPassed�[m

@kvendingoldo
Copy link
Collaborator Author

Here's the failing part: wait "$pid" || exit_code=$?

    if [[ $parallelism_disabled == true ]] ||
      [[ $i -ne 0 && $((i % parallelism_limit)) -eq 0 ]] || # don't stop on first iteration when parallelism_limit>1
      [[ $i -eq $last_index ]]; then

      for pid in "${pids[@]}"; do
        # Get the exit code from the background process
        local exit_code=0
        wait "$pid" || exit_code=$?

        if [ $exit_code -ne 0 ]; then
          final_exit_code=$exit_code
        fi
      done
      # Reset pids for next iteration
      unset pids
    fi

@tparvu
Copy link

tparvu commented Jan 2, 2025

Also having an issue with this.

Terraform fmt............................................................Failed                                                                
- hook id: terraform_fmt                                                                                                                       
- exit code: 1                                                                                                                                 
                                                                                                                                               
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                                                        
Failure during terraform call : fork/exec /usr/bin/tenv: inappropriate ioctl for device                

export TENV_DETACHED_PROXY=false seems to get it to work for me, have not looked into why.

@daniel-ciaglia
Copy link

daniel-ciaglia commented Jan 6, 2025

for the record: happens on Linux x64 as well (original issue was on MacOS)
tenv version 4.1.0

Edit:
Some more tests/debugging

v3.2.11 works just fine, all 4.x versions are broken.

The problematic change seems to be this: f665b6e#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R644

@tiwood
Copy link

tiwood commented Jan 13, 2025

Other tools are throwing too with similar errors.

I've had problems running a VSCode extension that is using the terraform binary and today I've found out I can no longer run Terraform acceptance tests:
cannot run Terraform provider tests: error calling terraform version command: exit status 1

Overriding the binary with TF_ACC_TERRAFORM_PATH helped at least with the acceptance tests.

@mystcb
Copy link

mystcb commented Jan 13, 2025

This looks connected with #255 and #304 - Seems to be that the default was changed as @daniel-ciaglia mentioned with a workaround for CI pipelines, but it seems to be affecting standard console use as well.

@dyegoe
Copy link

dyegoe commented Jan 16, 2025

I can confirm that there are problems with VSCode as well.
I have experienced issues with formatOnSave for Terraform files.
Adding export TENV_DETACHED_PROXY=false to my .zshenv did the job.

@muru
Copy link

muru commented Jan 21, 2025

This also affects the Terraform plugin for Vim's format-on-save, and it seems simply redirecting stdin in a terminal as well:

% tofu fmt -check - < main.tf
Failure during tofu call : fork/exec /opt/homebrew/bin/tenv: inappropriate ioctl for device

@archoversight
Copy link

This issue seems to be related to the fact that tenv doesn't just execvp (or one of the other C lib like calls) where the process gets replaced.

#305 (comment)

@dvaumoron
Copy link
Contributor

Can you test v4.2.0-beta2 ?

@daniel-ciaglia
Copy link

Works for me :)

$> tenv --version
tenv version v4.2.0-beta2
$> pre-commit run --file ./*
Terraform fmt............................................................Passed
Terraform docs...........................................................Passed
Terraform validate.......................................................Passed
Terraform validate with tflint...........................................Passed

@muru
Copy link

muru commented Jan 29, 2025

@dvaumoron thank you, v4.2.0-beta2 works the Vim plugin and the redirection test in my previous comment.

@dvaumoron dvaumoron self-assigned this Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working TENV_DETACHED_PROXY
Projects
None yet
Development

No branches or pull requests

9 participants