Skip to content

Commit 8abfe0e

Browse files
authored
Merge branch 'master' into tfenv-pin
2 parents 58299c2 + 3769e99 commit 8abfe0e

2 files changed

Lines changed: 41 additions & 21 deletions

File tree

libexec/tfenv-min-required

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@ find_min_required() {
8585
else
8686
found_min_required="$(echo "$found_min_required")";
8787
#echo "Min required version is detected as ${found_min_required}";
88+
89+
# Probably not an advisable way to choose a terraform version,
90+
# but this is the way this functionality works in terraform:
91+
# add .0 to versions without a minor and/or patch version (e.g. 12.0)
92+
while ! [[ "${found_min_required}" =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; do
93+
found_min_required="${found_min_required}.0";
94+
done;
95+
8896
echo "${found_min_required}";
8997
exit 0;
9098
fi;

test/test_use_minrequired.sh

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,44 +50,56 @@ fi;
5050

5151
declare -a errors=();
5252

53-
log 'info' '### Install not min-required version';
5453
cleanup || log 'error' 'Cleanup failed?!';
5554

56-
v='0.8.8';
57-
minv='0.8.0';
58-
minv_tag='0.13.0-rc1'
59-
(
60-
tfenv install "${v}" || true;
61-
tfenv use "${v}" || exit 1;
62-
check_active_version "${v}" || exit 1;
63-
) || error_and_proceed "Installing specific version ${v}";
64-
6555

6656
log 'info' '### Install min-required normal version (#.#.#)';
6757

68-
echo "terraform {
58+
minv='0.8.0';
6959

60+
echo "terraform {
7061
required_version = \">=${minv}\"
71-
}" >> min_required.tf;
72-
73-
tfenv install min-required;
74-
tfenv use min-required;
62+
}" > min_required.tf;
7563

76-
check_active_version "${minv}" || error_and_proceed 'Min required version does not match';
64+
(
65+
tfenv install min-required;
66+
tfenv use min-required;
67+
check_active_version "${minv}";
68+
) || error_and_proceed 'Min required version does not match';
7769

7870
cleanup || log 'error' 'Cleanup failed?!';
7971

72+
8073
log 'info' '### Install min-required tagged version (#.#.#-tag#)'
8174

75+
minv='0.13.0-rc1'
76+
8277
echo "terraform {
78+
required_version = \">=${minv}\"
79+
}" > min_required.tf;
8380

84-
required_version = \">=${minv_tag}\"
85-
}" >> min_required.tf;
81+
(
82+
tfenv install min-required;
83+
tfenv use min-required;
84+
check_active_version "${minv}";
85+
) || error_and_proceed 'Min required tagged-version does not match';
86+
87+
cleanup || log 'error' 'Cleanup failed?!';
88+
89+
90+
log 'info' '### Install min-required incomplete version (#.#.<missing>)'
8691

87-
tfenv install min-required
88-
tfenv use min-required
92+
minv='0.12';
8993

90-
check_active_version "${minv_tag}" || error_and_proceed 'Min required version does not match';
94+
echo "terraform {
95+
required_version = \">=${minv}\"
96+
}" >> min_required.tf;
97+
98+
(
99+
tfenv install min-required;
100+
tfenv use min-required;
101+
check_active_version "${minv}.0";
102+
) || error_and_proceed 'Min required incomplete-version does not match';
91103

92104
cleanup || log 'error' 'Cleanup failed?!';
93105

0 commit comments

Comments
 (0)