From 9d8f80916a300a846dfd6bb8ad10d402a96ba3f3 Mon Sep 17 00:00:00 2001 From: Ryan Cao <70191398+ryanccn@users.noreply.github.com> Date: Mon, 13 Nov 2023 20:38:14 +0800 Subject: [PATCH] add latest flag --- src/commands/ls_remote.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/commands/ls_remote.rs b/src/commands/ls_remote.rs index b7270fe..51ef3c0 100644 --- a/src/commands/ls_remote.rs +++ b/src/commands/ls_remote.rs @@ -17,6 +17,10 @@ pub struct LsRemote { /// Version sorting order #[arg(long, default_value = "asc")] sort: remote_node_index::SortingMethod, + + /// Only show the latest matching version + #[arg(long)] + latest: bool, } impl super::command::Command for LsRemote { @@ -40,6 +44,15 @@ impl super::command::Command for LsRemote { all_versions.retain(|v| filter.matches(&v.version, config)); } + if all_versions.is_empty() { + eprintln!("{}", "No versions were found!".red()); + return Ok(()); + } + + if self.latest { + all_versions = vec![all_versions.into_iter().last().unwrap()]; + } + for version in &all_versions { print!("{}", version.version); if let Some(lts) = &version.lts { @@ -48,10 +61,6 @@ impl super::command::Command for LsRemote { println!(); } - if all_versions.is_empty() { - eprintln!("{}", "No versions were found!".red()); - } - Ok(()) } }