diff --git a/help.txt b/help.txt index 7162a6cb..6caf310b 100644 --- a/help.txt +++ b/help.txt @@ -40,6 +40,8 @@ asdf global latest[:] Set the package local version to the asdf shell Set the package version to `ASDF_${LANG}_VERSION` in the current shell asdf latest [] Show latest stable version of a package +asdf latest --all Show latest stable version of all the + packages and if they are installed asdf list [version] List installed versions of a package and optionally filter the versions asdf list all [] List all versions of a package and diff --git a/lib/commands/command-latest.bash b/lib/commands/command-latest.bash index d086b514..04ecd53c 100644 --- a/lib/commands/command-latest.bash +++ b/lib/commands/command-latest.bash @@ -73,7 +73,7 @@ latest_all() { local installed_versions installed_versions=$(list_installed_versions "$plugin_name") - if ! printf '%s\n' "$installed_versions" | grep -q "^$version\$"; then + if [ -n "$installed_versions" ] && printf '%s\n' "$installed_versions" | grep -q "^$version\$"; then installed_status="installed" fi printf "%s\\t%s\\t%s\\n" "$plugin_name" "$version" "$installed_status" diff --git a/test/latest_command.bats b/test/latest_command.bats index ea55a7df..b72857f6 100644 --- a/test/latest_command.bats +++ b/test/latest_command.bats @@ -64,7 +64,16 @@ teardown() { #### latest --all #### ################################ @test "[latest_command - all plugins] shows the latest stable version of all plugins" { + run asdf install dummy 2.0.0 + run asdf install legacy-dummy 1.0.0 run asdf latest --all - [ "$(echo -e "dummy\t2.0.0\tinstalled\nlegacy-dummy\t2.0.0\tinstalled\n")" == "$output" ] + echo "output $output" + [ "$(echo -e "dummy\t2.0.0\tinstalled\nlegacy-dummy\t2.0.0\tmissing\n")" == "$output" ] + [ "$status" -eq 0 ] +} + +@test "[latest_command - all plugins] not installed plugin should return missing" { + run asdf latest --all + [ "$(echo -e "dummy\t2.0.0\tmissing\nlegacy-dummy\t2.0.0\tmissing\n")" == "$output" ] [ "$status" -eq 0 ] }