diff options
-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(()) +} |