aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cli.rs2
-rw-r--r--src/main.rs38
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(())
+}