File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -84,7 +84,20 @@ export -f curlw;
8484
8585function check_active_version() {
8686 local v=" ${1} " ;
87- [ -n " $( ${TFENV_ROOT} /bin/terraform version | grep -E " ^Terraform v${v} ((-dev)|( \([a-f0-9]+\)))?$" ) " ];
87+ local maybe_chdir=;
88+ if [ -n " ${2:- } " ]; then
89+ maybe_chdir=" -chdir=${2} " ;
90+ fi ;
91+
92+ local active_version=" $( ${TFENV_ROOT} /bin/terraform ${maybe_chdir} version | grep ' ^Terraform' ) " ;
93+
94+ if ! grep -E " ^Terraform v${v} ((-dev)|( \([a-f0-9]+\)))?\$ " <( echo " ${active_version} " ) ; then
95+ log ' debug' " Expected version ${v} but found ${active_version} " ;
96+ return 1;
97+ fi ;
98+
99+ log ' debug' " Active version ${v} as expected" ;
100+ return 0;
88101};
89102export -f check_active_version;
90103
@@ -113,6 +126,8 @@ function cleanup() {
113126 rm -rf ./.terraform-version;
114127 log ' debug' " Deleting ${pwd} /min_required.tf" ;
115128 rm -rf ./min_required.tf;
129+ log ' debug' " Deleting ${pwd} /chdir-dir" ;
130+ rm -rf ./chdir-dir;
116131};
117132export -f cleanup;
118133
Original file line number Diff line number Diff line change @@ -120,6 +120,24 @@ echo 'min-required' > .terraform-version;
120120
121121cleanup || log ' error' ' Cleanup failed?!' ;
122122
123+
124+ log ' info' ' ### Install min-required with TFENV_AUTO_INSTALL & -chdir' ;
125+
126+ minv=' 1.1.0' ;
127+
128+ mkdir -p chdir-dir
129+ echo " terraform {
130+ required_version = \" >=${minv} \"
131+ }" >> chdir-dir/min_required.tf;
132+ echo ' min-required' > chdir-dir/.terraform-version
133+
134+ (
135+ TFENV_AUTO_INSTALL=true terraform -chdir=chdir-dir version;
136+ check_active_version " ${minv} " chdir-dir;
137+ ) || error_and_proceed ' Min required version from -chdir does not match' ;
138+
139+ cleanup || log ' error' ' Cleanup failed?!' ;
140+
123141if [ " ${# errors[@]} " -gt 0 ]; then
124142 log ' warn' ' ===== The following use_minrequired tests failed =====' ;
125143 for error in " ${errors[@]} " ; do
You can’t perform that action at this time.
0 commit comments