Skip to content

Commit 739f459

Browse files
committed
Refactor version file parsing to own function
1 parent 759a13a commit 739f459

File tree

6 files changed

+21
-6
lines changed

6 files changed

+21
-6
lines changed

lib/helpers.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ export -f check_dependencies;
153153

154154
source "$TFENV_ROOT/lib/tfenv-exec.sh";
155155
source "$TFENV_ROOT/lib/tfenv-min-required.sh";
156+
source "$TFENV_ROOT/lib/tfenv-parse-version-file.sh";
156157
source "$TFENV_ROOT/lib/tfenv-version-file.sh";
157158
source "$TFENV_ROOT/lib/tfenv-version-name.sh";
158159

lib/tfenv-parse-version-file.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
3+
set -uo pipefail;
4+
5+
# Ensure GNU grep
6+
check_dependencies;
7+
8+
function tfenv-parse-version-file() {
9+
local version_file="$1"
10+
log 'debug' "Parsing version from file ${version_file}"
11+
12+
grep --invert-match '^#' "${version_file}";
13+
}
14+
export -f tfenv-parse-version-file;

lib/tfenv-version-name.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function tfenv-version-name() {
1010
&& log 'debug' "TFENV_VERSION_FILE retrieved from tfenv-version-file: ${TFENV_VERSION_FILE}" \
1111
|| log 'error' 'Failed to retrieve TFENV_VERSION_FILE from tfenv-version-file';
1212

13-
TFENV_VERSION="$(grep --invert-match '^#' "${TFENV_VERSION_FILE}" || true)" \
13+
TFENV_VERSION="$(tfenv-parse-version-file "${TFENV_VERSION_FILE}")" \
1414
&& log 'debug' "TFENV_VERSION specified in TFENV_VERSION_FILE: ${TFENV_VERSION}";
1515

1616
TFENV_VERSION_SOURCE="${TFENV_VERSION_FILE}";

libexec/tfenv-resolve-version

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@ if [ -z "${arg}" -a -z "${TFENV_TERRAFORM_VERSION:-""}" ]; then
7777

7878
if [ "${version_file}" != "${TFENV_CONFIG_DIR}/version" ]; then
7979
log 'debug' "Version File (${version_file}) is not the default \${TFENV_CONFIG_DIR}/version (${TFENV_CONFIG_DIR}/version)";
80-
version_requested="$(grep --invert-match '^#' "${version_file}")" \
80+
version_requested="$(tfenv-parse-version-file "${version_file}")" \
8181
|| log 'error' "Failed to open ${version_file}";
8282

8383
elif [ -f "${version_file}" ]; then
8484
log 'debug' "Version File is the default \${TFENV_CONFIG_DIR}/version (${TFENV_CONFIG_DIR}/version)";
85-
version_requested="$(grep --invert-match '^#' "${version_file}")" \
85+
version_requested="$(tfenv-parse-version-file "${version_file}")" \
8686
|| log 'error' "Failed to open ${version_file}";
8787

8888
# Absolute fallback

libexec/tfenv-uninstall

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ if [ -z "${arg:-""}" -a -z "${TFENV_TERRAFORM_VERSION:-""}" ]; then
6969
log 'debug' "Version File: ${version_file}";
7070
if [ "${version_file}" != "${TFENV_CONFIG_DIR}/version" ]; then
7171
log 'debug' "Version File (${version_file}) is not the default \${TFENV_CONFIG_DIR}/version (${TFENV_CONFIG_DIR}/version)";
72-
version_requested="$(grep --invert-match '^#' "${version_file}")" \
72+
version_requested="$(tfenv-parse-version-file "${version_file}")" \
7373
|| log 'error' "Failed to open ${version_file}";
7474
elif [ -f "${version_file}" ]; then
7575
log 'debug' "Version File is the default \${TFENV_CONFIG_DIR}/version (${TFENV_CONFIG_DIR}/version)";
76-
version_requested="$(grep --invert-match '^#' "${version_file}")" \
76+
version_requested="$(tfenv-parse-version-file "${version_file}")" \
7777
|| log 'error' "Failed to open ${version_file}";
7878
else
7979
log 'debug' "Version File is the default \${TFENV_CONFIG_DIR}/version (${TFENV_CONFIG_DIR}/version) but it doesn't exist";

libexec/tfenv-use

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ if [ -z "${requested_arg}" -a -z "${TFENV_TERRAFORM_VERSION:-""}" ]; then
7676
version_source_suffix=" (set by ${loaded_version_file})";
7777

7878
if [ -f "${loaded_version_file}" ]; then
79-
requested="$(grep --invert-match '^#' "${loaded_version_file}" || true)";
79+
requested="$(tfenv-parse-version-file "${loaded_version_file}")";
8080
else
8181
# No-one asked for anything, no default version is set either
8282
requested='latest';

0 commit comments

Comments
 (0)