Canonicalize upload directory when uploading to local

This commit is contained in:
Leonard Steppy 2025-02-03 00:51:56 +01:00
parent da2b6097e9
commit 329ba8f381

View File

@ -181,7 +181,7 @@ fn main() -> Result<(), String> {
files,
file_server,
old_version_policy,
upload_directory,
mut upload_directory,
no_confirm,
file_name,
} => {
@ -234,6 +234,15 @@ fn main() -> Result<(), String> {
let actions = servers
.iter()
.map(|server| {
//on local server canonicalize upload_directory
if let ServerAddress::Localhost = &server.address {
//create upload directory if it doesn't exist
fs::create_dir_all(&upload_directory)
.map_err(|e| format!("Failed to create upload-directory: {e}"))?;
upload_directory = fs::canonicalize(&upload_directory)
.map_err(|e| format!("failed to resolve upload-directory: {e}"))?;
}
let working_directory = server.server_directory_path.join(&upload_directory);
Ok(ServerActions {
server,
@ -658,6 +667,7 @@ mod test {
assert_eq!(PathBuf::from("/home"), joined);
}
/// When renaming a file in a folder, the folder is relevant in the new name
#[test]
fn rename_experiment() {
fs::rename("test-ressources/files/test", "test-ressources/files/test1")
@ -665,4 +675,10 @@ mod test {
fs::rename("test-ressources/files/test1", "test-ressources/files/test")
.expect("failed to rename test1 file back to test");
}
#[test]
fn mkdir_experiment() {
fs::create_dir_all("./test-ressources/files/../python")
.expect("failed to create directory with relative path");
}
}