Browse Source

add latest flag

remotes/origin/list-filter
Ryan Cao 1 year ago
parent
commit
9d8f80916a
No known key found for this signature in database
  1. 17
      src/commands/ls_remote.rs

17
src/commands/ls_remote.rs

@ -17,6 +17,10 @@ pub struct LsRemote {
/// Version sorting order /// Version sorting order
#[arg(long, default_value = "asc")] #[arg(long, default_value = "asc")]
sort: remote_node_index::SortingMethod, sort: remote_node_index::SortingMethod,
/// Only show the latest matching version
#[arg(long)]
latest: bool,
} }
impl super::command::Command for LsRemote { 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)); 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 { for version in &all_versions {
print!("{}", version.version); print!("{}", version.version);
if let Some(lts) = &version.lts { if let Some(lts) = &version.lts {
@ -48,10 +61,6 @@ impl super::command::Command for LsRemote {
println!(); println!();
} }
if all_versions.is_empty() {
eprintln!("{}", "No versions were found!".red());
}
Ok(()) Ok(())
} }
} }

Loading…
Cancel
Save