diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-10-07 19:41:15 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-10-07 19:41:15 +0200 |
commit | 03197cd47ac595dec00ac8c047be0c66b5716a71 (patch) | |
tree | 4b04b1d9e1c1f78db22f0172a678d16241ae6391 | |
parent | fix(cli): Avoid having to interleave `sedowa` with dashes (diff) | |
download | yt-03197cd47ac595dec00ac8c047be0c66b5716a71.tar.gz yt-03197cd47ac595dec00ac8c047be0c66b5716a71.zip |
feat(cli): Also add a `dowa` command
This is the same as the `sedowa` command, with the difference that the `dowa` command does not include the select part.
Diffstat (limited to '')
-rw-r--r-- | src/cli.rs | 2 | ||||
-rw-r--r-- | src/main.rs | 38 |
2 files changed, 25 insertions, 15 deletions
diff --git a/src/cli.rs b/src/cli.rs index 0dfd531..51809c0 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -63,6 +63,8 @@ pub enum Command { /// Select, download and watch in one command. Sedowa {}, + /// Download and watch in one command. + Dowa {}, /// Work with single videos Videos { diff --git a/src/main.rs b/src/main.rs index 0961dd3..3f7e410 100644 --- a/src/main.rs +++ b/src/main.rs @@ -110,22 +110,12 @@ async fn main() -> Result<()> { Command::Sedowa {} => { select::select(&app, false, false).await?; - let max_cache_size = app.config.download.max_cache_size; - info!("Max cache size: '{}'", max_cache_size); - let arc_app = Arc::new(app); - - let arc_app_clone = Arc::clone(&arc_app); - let download: JoinHandle<Result<()>> = tokio::spawn(async move { - download::Downloader::new() - .consume(arc_app_clone, max_cache_size.as_u64()) - .await?; - - Ok(()) - }); - - watch::watch(&arc_app).await?; - download.await??; + dowa(arc_app).await?; + } + Command::Dowa {} => { + let arc_app = Arc::new(app); + dowa(arc_app).await?; } Command::Videos { cmd } => match cmd { VideosCommand::List { @@ -232,3 +222,21 @@ async fn main() -> Result<()> { Ok(()) } + +async fn dowa(arc_app: Arc<App>) -> Result<()> { + let max_cache_size = arc_app.config.download.max_cache_size; + info!("Max cache size: '{}'", max_cache_size); + + let arc_app_clone = Arc::clone(&arc_app); + let download: JoinHandle<Result<()>> = tokio::spawn(async move { + download::Downloader::new() + .consume(arc_app_clone, max_cache_size.as_u64()) + .await?; + + Ok(()) + }); + + watch::watch(&arc_app).await?; + download.await??; + Ok(()) +} |