allow specifying path for generate_file()

This commit is contained in:
2025-04-20 23:50:26 +02:00
parent 28f372425e
commit 68190445bb

View File

@ -27,7 +27,7 @@ fn run_as_cli(client: &mut postgres::Client) -> Result<(), Box<dyn Error>> {
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<String>,
folder_path: Option<String>,
) -> Result<(), Box<dyn Error>> {
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 {