Skip to content

Commit

Permalink
Fix use when passed a latest
Browse files Browse the repository at this point in the history
  • Loading branch information
Zordrak committed Jul 14, 2022
1 parent d5e81de commit a913cfd
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 4 deletions.
5 changes: 5 additions & 0 deletions libexec/tfenv-resolve-version
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,11 @@ if [[ "${version_requested}" =~ ^min-required$ ]]; then
min_required="$(tfenv-min-required)" \
|| log 'error' 'tfenv-min-required failed';

if [ -z "${min_required}" ]; then
log 'debug' 'It was not possible to detect a minimum-required version. Do you have a required_version line present?';
exit;
fi;

log 'debug' "Minimum required version detected: ${min_required}";
version_requested="${min_required}";
fi;
Expand Down
8 changes: 7 additions & 1 deletion libexec/tfenv-use
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ fi;

log debug "Resolving version with: tfenv-resolve-version ${requested_arg}";
declare resolved="$(tfenv-resolve-version ${requested_arg})";
[ -z "${resolved}" ] && log 'error' "Failure to resolve version from ${requested_arg}";

log debug "Resolved to: ${resolved}";

declare version="${resolved%%\:*}";
Expand All @@ -111,7 +113,11 @@ if [ -n "${installed_version}" ]; then
else
if [ "${auto_install}" == 'true' ]; then
log 'info' "No installed versions of terraform matched '${resolved}'. Trying to install a matching version since TFENV_AUTO_INSTALL=true";
tfenv-install "${resolved}" || log 'error' 'Installing a matching version failed';

declare install_version='';
[ "${version}" == 'latest' ] && install_version="${version}:${regex}" || install_version="${version}";

tfenv-install "${install_version}" || log 'error' 'Installing a matching version failed';

installed_version="$(\find "${TFENV_CONFIG_DIR}/versions/" -type d -exec basename {} \; \
| tail -n +2 \
Expand Down
16 changes: 13 additions & 3 deletions test/test_install_and_use.sh
Original file line number Diff line number Diff line change
Expand Up @@ -196,14 +196,24 @@ if [ -f "${HOME}/.terraform-version.bup" ]; then
mv "${HOME}/.terraform-version.bup" "${HOME}/.terraform-version";
fi;

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

(
tfenv use || exit 1;
check_default_version "$(tfenv list-remote | grep -e "^[0-9]\+\.[0-9]\+\.[0-9]\+$" | head -n 1)" || exit 1;
) && log info '## Use (No Input) Test 1/1: succeeded' \
|| error_and_proceed '## Use (No Input) Test 1/1: failed';
) && log info '## Use Auto-Install Test 1/2: (No Input) succeeded' \
|| error_and_proceed '## Use Auto-Install Test 1/2: (No Input) failed';

log 'info' '## Use Auto-Install Test 2/2: (Specific version)';
cleanup || log 'error' 'Cleanup failed?!';

(
tfenv use 1.0.1 || exit 1;
check_default_version 1.0.1 || exit 1;
) && log info '## Use Auto-Install Test 2/2: (Specific version) succeeded' \
|| error_and_proceed '## Use Auto-Install Test 2/2: (Specific version) failed';


log 'info' 'Install invalid specific version';
cleanup || log 'error' 'Cleanup failed?!';
Expand Down

0 comments on commit a913cfd

Please sign in to comment.