fix: always use ASDF_DEFAULT_TOOL_VERSIONS_FILENAME for filename when 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
This commit is contained in:
Trevor Brown 2022-05-27 07:50:04 -04:00 committed by GitHub
parent 0bc8c3ab68
commit 711ad99104
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 10 deletions

View File

@ -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

View File

@ -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
@ -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
@ -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() {

View File

@ -249,21 +249,41 @@ teardown() {
[ "$(cat $HOME/.tool-versions)" = "dummy path:$PROJECT_DIR/local" ]
}
@test "global should write to ASDF_DEFAULT_TOOL_VERSIONS_FILENAME" {
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME="$PROJECT_DIR/global-tool-versions"
run asdf global "dummy" "1.1.0"
@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="global-tool-versions"
run asdf global "dummy" "1.1.0"
[ "$status" -eq 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
}