From 2ae7d196b9304b2232b9bad03a4ba314c0bbcaec Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 6 Mar 2019 11:18:46 +0100 Subject: [PATCH] src/bin/proxmox-backup-client.rs: correctly strip file extension --- src/bin/proxmox-backup-client.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/bin/proxmox-backup-client.rs b/src/bin/proxmox-backup-client.rs index 63aa9476..ca6eef62 100644 --- a/src/bin/proxmox-backup-client.rs +++ b/src/bin/proxmox-backup-client.rs @@ -421,17 +421,22 @@ fn restore( "archive-name": file, }))?; - let path = format!("api2/json/admin/datastore/{}/catar?{}", repo.store, query); - let mut target = std::path::PathBuf::from(target_path); - target.push(file); + if file.ends_with(".catar.didx") { + let path = format!("api2/json/admin/datastore/{}/catar?{}", repo.store, query); + let mut target = std::path::PathBuf::from(target_path); + target.push(file); + target.set_extension(""); - let fh = std::fs::OpenOptions::new() - .create_new(true) - .write(true) - .open(&target)?; + let fh = std::fs::OpenOptions::new() + .create_new(true) + .write(true) + .open(&target)?; - println!("DOWNLOAD FILE {} to {:?}", path, target); - client.download(&path, Box::new(fh))?; + println!("DOWNLOAD FILE {} to {:?}", path, target); + client.download(&path, Box::new(fh))?; + } else { + bail!("unknown file extensions - unable to download '{}'", file); + } } Ok(Value::Null)