From 72062842e77260b005b6ac09809de21a581b2b49 Mon Sep 17 00:00:00 2001 From: Adam Cooper Date: Tue, 22 Mar 2022 01:10:21 -0400 Subject: [PATCH] Panic if password script yields no password (#12) This would happen, e.g., if the database is locked. --- src/main.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 327689d..aa924b4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -153,7 +153,7 @@ async fn get_folder_contents(url_tail: &str, config: &Config) -> Result Result> { debug!("[publicise_it] Entering function..."); - let base_url = Url::parse(config.paths.root.as_str())?; + let base_url = Url::parse(config.paths.root.as_str())?; let url = base_url.join("ocs/v2.php/apps/files_sharing/api/v1/shares")?; let method = reqwest::Method::POST; let client = reqwest::Client::new(); @@ -226,25 +226,26 @@ async fn traverse(mut result: Multistatus, config: &Config) -> Result std::io::Result<()> { - env_logger::Builder::from_env(Env::default()).init(); println!("Publicise it!\n\n"); let mut config = init().unwrap(); if config.credentials.password == None { let output = Command::new(&config.credentials.password_script.as_ref().unwrap()).output().unwrap(); + if output.stdout.len() == 0 { + panic!("[main] Failed to acquire password from provided script."); + } config.credentials.password = Some(String::from_utf8(output.stdout).unwrap()); } debug!("[main] {:?}", &config); + let full_path = &(String::from("/remote.php/dav/files/") + &config.credentials.username + "/" + &config.paths.target); let folder_contents: String = get_folder_contents(full_path, &config) .await .unwrap(); - let result: Multistatus = from_str(&folder_contents).unwrap(); debug!("[main] {:?}", result); - let _ = traverse(result, &config).await.unwrap(); Ok(()) }