From 68190445bb13ba0684db66f76d8a3dce993d8a49 Mon Sep 17 00:00:00 2001 From: AustrianToast Date: Sun, 20 Apr 2025 23:50:26 +0200 Subject: [PATCH] allow specifying path for generate_file() --- src/main.rs | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index 022096e..6705f9f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,7 +27,7 @@ fn run_as_cli(client: &mut postgres::Client) -> Result<(), Box> { match option.trim_end() { "usage" => show_usage(), - "generate" => generate_file(client, None)?, + "generate" => generate_file(client, None, None)?, "convert" => convert_folders(client, None)?, "import" => import_file(client, None)?, "add_url" => add_url(client, None)?, @@ -55,7 +55,11 @@ fn run_with_input( let value = arguments[2].clone(); match arguments[1].as_str() { - "generate" => generate_file(client, Option::Some(value))?, + "generate" => generate_file( + client, + Option::Some(value), + Option::Some(arguments[3].clone()), + )?, "convert" => convert_folders(client, Option::Some(value))?, "import" => import_file(client, Option::Some(value))?, "add_url" => add_url(client, Option::Some(value))?, @@ -79,8 +83,10 @@ fn run_with_input( fn generate_file( client: &mut postgres::Client, website: Option, + folder_path: Option, ) -> Result<(), Box> { let mut website_name = String::new(); + let mut file_path = String::new(); match website { Some(val) => website_name = val, @@ -91,8 +97,17 @@ fn generate_file( io::stdin().read_line(&mut website_name)?; } }; + website_name = website_name.trim().to_string(); - let website_name = website_name.trim(); + match folder_path { + Some(val) => file_path = val, + None => { + println!("Please input the folder_path of where to save the file"); + io::stdin().read_line(&mut file_path)?; + } + }; + file_path = file_path.trim().to_string(); + file_path.push_str(format!("/{website_name}_generated.txt").as_str()); let output = client.query_one("SELECT website_exists($1);", &[&website_name])?; @@ -104,9 +119,7 @@ fn generate_file( ))); } - let filename = format!("{website_name}_generated.txt"); - let mut file = File::create_new(filename)?; - + let mut file = File::create(file_path)?; let output = client.query("SELECT * FROM get_urls_and_paths($1);", &[&website_name])?; for row in output {