From e0f4483ff90e85b841a3cd4748811fcf3738d495 Mon Sep 17 00:00:00 2001 From: Melody Horn Date: Sat, 27 Mar 2021 10:11:20 -0600 Subject: allow user to specify output directory --- src/download.rs | 4 ++++ src/main.rs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/download.rs b/src/download.rs index 72cdaf3..82bb302 100644 --- a/src/download.rs +++ b/src/download.rs @@ -14,6 +14,8 @@ use super::Args; type HttpsClient = Client>; pub(crate) async fn download(url: Uri, args: &Args) -> Result<(), Error> { + let output_file_dir = &args.directory_prefix; + let output_file_path = if let Some(output) = &args.output_document { Some(output.clone()) } else { @@ -49,6 +51,8 @@ pub(crate) async fn download(url: Uri, args: &Args) -> Result<(), Error> { PathBuf::from(format!("index{}", extension)) }; + let output_file_path = output_file_dir.join(output_file_path); + let mut output_file = fs::File::create(output_file_path).await?; while let Some(data) = response.body_mut().data().await { diff --git a/src/main.rs b/src/main.rs index 28de762..a622afd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,6 +20,10 @@ struct Args { #[structopt(short = "O", long)] output_document: Option, + /// Set output directory + #[structopt(short = "P", long, default_value = ".")] + directory_prefix: PathBuf, + /// The URLs to download urls: Vec, } -- cgit v1.2.3