diff options
Diffstat (limited to 'server/src/fs_utils.rs')
| -rw-r--r-- | server/src/fs_utils.rs | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/server/src/fs_utils.rs b/server/src/fs_utils.rs deleted file mode 100644 index 7905d01..0000000 --- a/server/src/fs_utils.rs +++ /dev/null @@ -1,54 +0,0 @@ -#![allow(dead_code)] - -use std::io; -use std::path::Path; -use tokio::fs; - -pub async fn create_dir_allow_existing(path: impl AsRef<Path>) -> io::Result<()> { - match fs::create_dir(path).await { - Ok(_) => Ok(()), - Err(e) => { - if e.kind() == io::ErrorKind::AlreadyExists { - Ok(()) - } else { - Err(e) - } - } - } -} - -pub async fn remove_file_allow_not_found(path: impl AsRef<Path>) -> io::Result<()> { - match fs::remove_file(path).await { - Ok(_) => Ok(()), - Err(e) => { - if e.kind() == io::ErrorKind::NotFound { - Ok(()) - } else { - Err(e) - } - } - } -} - -pub async fn symlink_update_existing( - src: impl AsRef<Path>, - dst: impl AsRef<Path>, -) -> io::Result<()> { - let src = src.as_ref(); - let dst = dst.as_ref(); - match fs::symlink(&src, &dst).await { - Ok(_) => Ok(()), - Err(e) => { - if e.kind() == io::ErrorKind::AlreadyExists { - let path = fs::read_link(&dst).await?; - if path == src { - return Ok(()); - } - fs::remove_file(&dst).await?; - fs::symlink(&src, &dst).await - } else { - Err(e) - } - } - } -} |
