77 "io"
88 "os"
99 "path/filepath"
10+ "slices"
1011 "strings"
1112
1213 "github.com/asdf-vm/asdf/internal/config"
@@ -35,11 +36,15 @@ func Main(_ io.Writer, stderr io.Writer, args []string, home bool, parent bool,
3536 }
3637
3738 resolvedVersions := []string {}
38-
39+ plugin := plugins .New (conf , args [0 ])
40+ pluginAvailableVersions , err := plugin .GetAvailableVersions ()
41+ if err != nil {
42+ return printError (stderr , fmt .Sprintf ("error getting available plugin versions: %s" , err ))
43+ }
44+
3945 for _ , version := range args [1 :] {
4046 parsedVersion := toolversions .ParseFromCliArg (version )
4147 if parsedVersion .Type == "latest" {
42- plugin := plugins .New (conf , args [0 ])
4348 resolvedVersion , err := versions .Latest (plugin , parsedVersion .Value )
4449 if err != nil {
4550 return fmt .Errorf ("unable to resolve latest version for %s" , plugin .Name )
@@ -49,6 +54,12 @@ func Main(_ io.Writer, stderr io.Writer, args []string, home bool, parent bool,
4954 }
5055 resolvedVersions = append (resolvedVersions , version )
5156 }
57+
58+ for _ , version := range resolvedVersions {
59+ if ! slices .Contains (pluginAvailableVersions , version ) {
60+ return printError (stderr , fmt .Sprintf ("version %s is not available for plugin %s\n " , version , plugin .Name ))
61+ }
62+ }
5263
5364 tv := toolversions.ToolVersions {Name : args [0 ], Versions : resolvedVersions }
5465
0 commit comments