diff --git a/.idea/androidx-release-watcher.iml b/.idea/androidx-release-watcher.iml
index b7b4242..d1568d0 100644
--- a/.idea/androidx-release-watcher.iml
+++ b/.idea/androidx-release-watcher.iml
@@ -6,6 +6,7 @@
+
diff --git a/.idea/ktfmt.xml b/.idea/ktfmt.xml
new file mode 100644
index 0000000..f0d6dab
--- /dev/null
+++ b/.idea/ktfmt.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/adx/Cargo.toml b/adx/Cargo.toml
index ab64101..0cc6a9f 100644
--- a/adx/Cargo.toml
+++ b/adx/Cargo.toml
@@ -13,7 +13,7 @@ readme = "../README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-clap = { version = "3.2.5", features = [ "color", "derive" ] }
+clap = { version = "3.2.5", features = [ "color", "deprecated", "derive" ] }
color-eyre = { version = "0.6.1", default-features = false }
futures = "0.3.21"
reqwest = { version = "0.11.11", default-features = false, features = ["rustls-tls"] }
diff --git a/adx/src/channel.rs b/adx/src/channel.rs
index 1c738a4..c22943e 100644
--- a/adx/src/channel.rs
+++ b/adx/src/channel.rs
@@ -3,6 +3,7 @@ use std::convert::TryFrom;
use std::fmt::Debug;
use std::str::FromStr;
+use clap::ValueEnum;
use semver::{Prerelease, Version};
use thiserror::Error;
@@ -10,7 +11,7 @@ use thiserror::Error;
/// Since we're deriving `PartialOrd` automatically, the order
/// of these fields is crucial. Sort by stability, not alphabetical
/// order.
-#[derive(Debug, Eq, PartialEq, PartialOrd, Clone, Copy)]
+#[derive(ValueEnum, Debug, Eq, PartialEq, PartialOrd, Clone, Copy)]
pub(crate) enum Channel {
Dev,
Alpha,
diff --git a/adx/src/main.rs b/adx/src/main.rs
index bbbf3f3..3eff467 100644
--- a/adx/src/main.rs
+++ b/adx/src/main.rs
@@ -8,7 +8,7 @@ mod stats_alloc;
use std::alloc::System;
use channel::Channel;
-use clap::{AppSettings, Parser};
+use clap::{builder::PossibleValuesParser, AppSettings, Parser};
use color_eyre::Result;
#[cfg(feature = "measure-alloc")]
use stats_alloc::{Region, StatsAlloc, INSTRUMENTED_SYSTEM};
@@ -26,7 +26,7 @@ pub(crate) struct Cli {
#[clap(required = true)]
pub(crate) search_term: String,
/// the release channel to find packages from
- #[clap(short='c', long="channel", possible_values=&["alpha", "a", "beta", "b", "dev", "d", "rc", "r", "stable", "s"], default_value="a")]
+ #[clap(short='c', long="channel", value_parser=PossibleValuesParser::new(&["alpha", "a", "beta", "b", "dev", "d", "rc", "r", "stable", "s"]), default_value="a")]
pub(crate) channel: Channel,
}
@@ -37,9 +37,9 @@ async fn main() -> Result<()> {
let reg = Region::new(GLOBAL);
let cli = Cli::parse();
#[cfg(feature = "measure-alloc")]
- let packages = crate::parse::parse("", cli.channel).await?;
+ let packages = parse::parse("", cli.channel).await?;
#[cfg(not(feature = "measure-alloc"))]
- let packages = crate::parse::parse(&cli.search_term, cli.channel).await?;
+ let packages = parse::parse(&cli.search_term, cli.channel).await?;
if packages.is_empty() {
println!("No results found!");
} else {
diff --git a/adx/src/parse.rs b/adx/src/parse.rs
index c1ec35f..6b20721 100644
--- a/adx/src/parse.rs
+++ b/adx/src/parse.rs
@@ -81,7 +81,7 @@ async fn parse_packages(groups: Vec, channel: Channel) -> Result