Skip to content

Commit a913cfd

Browse files
committed
Fix use when passed a latest
1 parent d5e81de commit a913cfd

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

libexec/tfenv-resolve-version

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,11 @@ if [[ "${version_requested}" =~ ^min-required$ ]]; then
118118
min_required="$(tfenv-min-required)" \
119119
|| log 'error' 'tfenv-min-required failed';
120120

121+
if [ -z "${min_required}" ]; then
122+
log 'debug' 'It was not possible to detect a minimum-required version. Do you have a required_version line present?';
123+
exit;
124+
fi;
125+
121126
log 'debug' "Minimum required version detected: ${min_required}";
122127
version_requested="${min_required}";
123128
fi;

libexec/tfenv-use

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ fi;
8989

9090
log debug "Resolving version with: tfenv-resolve-version ${requested_arg}";
9191
declare resolved="$(tfenv-resolve-version ${requested_arg})";
92+
[ -z "${resolved}" ] && log 'error' "Failure to resolve version from ${requested_arg}";
93+
9294
log debug "Resolved to: ${resolved}";
9395

9496
declare version="${resolved%%\:*}";
@@ -111,7 +113,11 @@ if [ -n "${installed_version}" ]; then
111113
else
112114
if [ "${auto_install}" == 'true' ]; then
113115
log 'info' "No installed versions of terraform matched '${resolved}'. Trying to install a matching version since TFENV_AUTO_INSTALL=true";
114-
tfenv-install "${resolved}" || log 'error' 'Installing a matching version failed';
116+
117+
declare install_version='';
118+
[ "${version}" == 'latest' ] && install_version="${version}:${regex}" || install_version="${version}";
119+
120+
tfenv-install "${install_version}" || log 'error' 'Installing a matching version failed';
115121

116122
installed_version="$(\find "${TFENV_CONFIG_DIR}/versions/" -type d -exec basename {} \; \
117123
| tail -n +2 \

test/test_install_and_use.sh

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,14 +196,24 @@ if [ -f "${HOME}/.terraform-version.bup" ]; then
196196
mv "${HOME}/.terraform-version.bup" "${HOME}/.terraform-version";
197197
fi;
198198

199-
log 'info' 'Use with no input and TFENV_AUTO_INSTALL:';
199+
log 'info' '## Use Auto-Install Test 1/2: (No Input)';
200200
cleanup || log 'error' 'Cleanup failed?!';
201201

202202
(
203203
tfenv use || exit 1;
204204
check_default_version "$(tfenv list-remote | grep -e "^[0-9]\+\.[0-9]\+\.[0-9]\+$" | head -n 1)" || exit 1;
205-
) && log info '## Use (No Input) Test 1/1: succeeded' \
206-
|| error_and_proceed '## Use (No Input) Test 1/1: failed';
205+
) && log info '## Use Auto-Install Test 1/2: (No Input) succeeded' \
206+
|| error_and_proceed '## Use Auto-Install Test 1/2: (No Input) failed';
207+
208+
log 'info' '## Use Auto-Install Test 2/2: (Specific version)';
209+
cleanup || log 'error' 'Cleanup failed?!';
210+
211+
(
212+
tfenv use 1.0.1 || exit 1;
213+
check_default_version 1.0.1 || exit 1;
214+
) && log info '## Use Auto-Install Test 2/2: (Specific version) succeeded' \
215+
|| error_and_proceed '## Use Auto-Install Test 2/2: (Specific version) failed';
216+
207217

208218
log 'info' 'Install invalid specific version';
209219
cleanup || log 'error' 'Cleanup failed?!';

0 commit comments

Comments
 (0)