aboutsummaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--crates/yt/Cargo.toml1
-rw-r--r--crates/yt/src/main.rs13
2 files changed, 12 insertions, 2 deletions
diff --git a/crates/yt/Cargo.toml b/crates/yt/Cargo.toml
index 100eb29..7289a4c 100644
--- a/crates/yt/Cargo.toml
+++ b/crates/yt/Cargo.toml
@@ -29,6 +29,7 @@ blake3 = "1.8.2"
chrono = { version = "0.4.41", features = ["now"] }
chrono-humanize = "0.2.3"
clap = { version = "4.5.40", features = ["derive"] }
+clap_complete = { version = "4.5.54", features = ["unstable-dynamic"] }
futures = "0.3.31"
owo-colors = "4.2.1"
regex = "1.11.1"
diff --git a/crates/yt/src/main.rs b/crates/yt/src/main.rs
index dd23d9f..b6a7d29 100644
--- a/crates/yt/src/main.rs
+++ b/crates/yt/src/main.rs
@@ -19,7 +19,7 @@ use anyhow::{Context, Result, bail};
use app::App;
use bytes::Bytes;
use cache::{invalidate, maintain};
-use clap::Parser;
+use clap::{CommandFactory, Parser};
use cli::{CacheCommand, SelectCommand, SubscriptionCommand, VideosCommand};
use config::Config;
use log::{error, info};
@@ -56,6 +56,8 @@ pub mod watch;
// This is _the_ main function after all. It is not really good, but it sort of works.
#[allow(clippy::too_many_lines)]
async fn main() -> Result<()> {
+ clap_complete::CompleteEnv::with_factory(cli::CliArgs::command).complete();
+
let args = cli::CliArgs::parse();
// The default verbosity is 1 (Warn)
@@ -218,7 +220,14 @@ async fn main() -> Result<()> {
current_progress += CHUNK_SIZE;
}
} else {
- update::update(&app, max_backlog, subscriptions, total_number, current_progress).await?;
+ update::update(
+ &app,
+ max_backlog,
+ subscriptions,
+ total_number,
+ current_progress,
+ )
+ .await?;
}
}
Command::Subscriptions { cmd } => match cmd {