From ba90c3bbe71bd33d628df607326da9f0cf363af1 Mon Sep 17 00:00:00 2001 From: Jeff Dickey <216188+jdx@users.noreply.github.com> Date: Tue, 27 Aug 2024 07:39:54 -0500 Subject: [PATCH] fix: block remote versions which are not simple versions --- src/backend/mod.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/backend/mod.rs b/src/backend/mod.rs index e40d8d160..8f6ec6f81 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -14,7 +14,7 @@ use regex::Regex; use strum::IntoEnumIterator; use versions::Versioning; -use crate::cli::args::BackendArg; +use crate::cli::args::{BackendArg, ToolVersionType}; use crate::config::{Config, Settings}; use crate::file::{display_path, remove_all, remove_all_with_warning}; use crate::install_context::InstallContext; @@ -189,7 +189,18 @@ pub trait Backend: Debug + Send + Sync { fn list_remote_versions(&self) -> eyre::Result> { self.ensure_dependencies_installed()?; trace!("Listing remote versions for {}", self.fa().to_string()); - self._list_remote_versions() + let versions = self + ._list_remote_versions()? + .into_iter() + .filter(|v| match v.parse::() { + Ok(ToolVersionType::Version(_)) => true, + _ => { + warn!("Invalid version: {}@{v}", self.id()); + false + } + }) + .collect(); + Ok(versions) } fn _list_remote_versions(&self) -> eyre::Result>; fn latest_stable_version(&self) -> eyre::Result> {