Skip to content

Commit

Permalink
fix: always use ASDF_DEFAULT_TOOL_VERSIONS_FILENAME for filename when…
Browse files Browse the repository at this point in the history
… present (#1238)

* fix: always use ASDF_DEFAULT_TOOL_VERSIONS_FILENAME for filename when present
* fix: correct version command unit tests for ASDF_DEFAULT_TOOL_VERSIONS_FILENAME

Fixes #1082
  • Loading branch information
Stratus3D committed May 27, 2022
1 parent 0bc8c3a commit 711ad99
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 9 deletions.
8 changes: 6 additions & 2 deletions lib/functions/versions.bash
Expand Up @@ -14,13 +14,17 @@ version_command() {
shift 2
local versions=("$@")

local file_name
local file

file_name="$(version_file_name)"

if [ "$cmd" = "global" ]; then
file=${ASDF_DEFAULT_TOOL_VERSIONS_FILENAME:-$HOME/.tool-versions}
file="$HOME/$file_name"
elif [ "$cmd" = "local-tree" ]; then
file=$(find_tool_versions)
else # cmd = local
file="$(pwd)/.tool-versions"
file="$(pwd)/$file_name"
fi

if [ -L "$file" ]; then
Expand Down
12 changes: 9 additions & 3 deletions lib/utils.bash
Expand Up @@ -156,10 +156,12 @@ get_version_in_dir() {
local legacy_filenames=$3

local asdf_version
asdf_version=$(parse_asdf_version_file "$search_path/.tool-versions" "$plugin_name")

file_name=$(version_file_name)
asdf_version=$(parse_asdf_version_file "$search_path/$file_name" "$plugin_name")

if [ -n "$asdf_version" ]; then
printf "%s\\n" "$asdf_version|$search_path/.tool-versions"
printf "%s\\n" "$asdf_version|$search_path/$file_name"
return 0
fi

Expand All @@ -174,6 +176,10 @@ get_version_in_dir() {
done
}

version_file_name() {
printf "%s" "${ASDF_DEFAULT_TOOL_VERSIONS_FILENAME:-.tool-versions}"
}

find_versions() {
local plugin_name=$1
local search_path=$2
Expand Down Expand Up @@ -431,7 +437,7 @@ get_plugin_source_url() {
}

find_tool_versions() {
find_file_upwards ".tool-versions"
find_file_upwards "$(version_file_name)"
}

find_file_upwards() {
Expand Down
28 changes: 24 additions & 4 deletions test/version_commands.bats
Expand Up @@ -249,21 +249,41 @@ teardown() {
[ "$(cat $HOME/.tool-versions)" = "dummy path:$PROJECT_DIR/local" ]
}

@test "local should write to ASDF_DEFAULT_TOOL_VERSIONS_FILENAME" {
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME="local-tool-versions"
run asdf local "dummy" "1.1.0"
[ "$status" -eq 0 ]
[ "$(cat $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME)" = "dummy 1.1.0" ]
[ "$(cat .tool-versions)" = "" ]
unset ASDF_DEFAULT_TOOL_VERSIONS_FILENAME
}

@test "local should overwrite contents of ASDF_DEFAULT_TOOL_VERSIONS_FILENAME if set" {
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME="local-tool-versions"
echo 'dummy 1.0.0' >> "$ASDF_DEFAULT_TOOL_VERSIONS_FILENAME"
run asdf local "dummy" "1.1.0"
[ "$status" -eq 0 ]
[ "$(cat $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME)" = "dummy 1.1.0" ]
[ "$(cat .tool-versions)" = "" ]
unset ASDF_DEFAULT_TOOL_VERSIONS_FILENAME
}


@test "global should write to ASDF_DEFAULT_TOOL_VERSIONS_FILENAME" {
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME="$PROJECT_DIR/global-tool-versions"
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME="global-tool-versions"
run asdf global "dummy" "1.1.0"
[ "$status" -eq 0 ]
[ "$(cat $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME)" = "dummy 1.1.0" ]
[ "$(cat $HOME/$ASDF_DEFAULT_TOOL_VERSIONS_FILENAME)" = "dummy 1.1.0" ]
[ "$(cat $HOME/.tool-versions)" = "" ]
unset ASDF_DEFAULT_TOOL_VERSIONS_FILENAME
}

@test "global should overwrite contents of ASDF_DEFAULT_TOOL_VERSIONS_FILENAME if set" {
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME="$PROJECT_DIR/global-tool-versions"
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME="global-tool-versions"
echo 'dummy 1.0.0' >> "$ASDF_DEFAULT_TOOL_VERSIONS_FILENAME"
run asdf global "dummy" "1.1.0"
[ "$status" -eq 0 ]
[ "$(cat $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME)" = "dummy 1.1.0" ]
[ "$(cat $HOME/$ASDF_DEFAULT_TOOL_VERSIONS_FILENAME)" = "dummy 1.1.0" ]
[ "$(cat $HOME/.tool-versions)" = "" ]
unset ASDF_DEFAULT_TOOL_VERSIONS_FILENAME
}
Expand Down

0 comments on commit 711ad99

Please sign in to comment.