WIP channel filter

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-03-02 11:28:40 +05:30
parent 5e5aa98ad3
commit 2de96a5486
No known key found for this signature in database
GPG Key ID: B7843F823355E9B9
3 changed files with 31 additions and 12 deletions

View File

@ -32,6 +32,17 @@ impl Channel {
panic!("Failed to determine channel for {}", version)
}
}
pub fn from_name(name: &str) -> Channel {
match name {
"stable" => Channel::Stable,
"dev" => Channel::Dev,
"alpha" => Channel::Alpha,
"beta" => Channel::Beta,
"rc" => Channel::RC,
_ => panic!("Failed to parse channel from '{}'", name),
}
}
}
impl Clone for Channel {

View File

@ -4,12 +4,13 @@ extern crate log;
extern crate roxmltree;
extern crate ureq;
use clap::{crate_name, crate_version, App, Arg, ArgGroup};
use log::{LevelFilter, Metadata, Record};
mod channel;
mod parse;
use crate::channel::Channel;
use clap::{crate_name, crate_version, App, Arg, ArgGroup};
use log::{LevelFilter, Metadata, Record};
/// Simple logger that simply outputs everything using println!()
/// It prints all levels in debug builds, and nothing on release builds.
struct StdOutLogger;
@ -44,6 +45,11 @@ fn main() {
.short("a")
.long("all")
.takes_value(false),
Arg::with_name("channel")
.long("channel")
.takes_value(true)
.possible_values(&["stable", "alpha", "beta", "rc", "dev"])
.default_value("stable"),
Arg::with_name("condensed")
.short("c")
.long("condensed")
@ -61,7 +67,12 @@ fn main() {
println!("No results found!");
} else if matches.is_present("condensed") || matches.is_present("all") {
for package in packages.iter() {
println!("{:?}", package);
println!(
"{}",
package.get_condensed(Channel::from_name(
matches.value_of("channel").unwrap_or("stable")
))
);
}
} else {
println!("{}", packages[0]);

View File

@ -1,7 +1,6 @@
use std::collections::HashMap;
use std::convert::TryInto;
use std::fmt;
use std::fmt::Debug;
use std::fmt::Display;
use std::fmt::Formatter;
use std::result::Result;
@ -25,13 +24,11 @@ pub struct MavenPackage {
latest_stable: Option<String>,
}
impl Debug for MavenPackage {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
write!(
f,
"{}:{}:{}",
self.group_id, self.artifact_id, self.all_versions[0]
)
impl MavenPackage {
pub(crate) fn get_condensed(&self, channel: Channel) -> String {
let mut result = String::new();
result.push_str(&format!("{}:{}:", self.group_id, self.artifact_id));
result
}
}