diff options
author | boasting-squirrel <boasting.squirrel@gmail.com> | 2019-03-12 19:16:45 +0000 |
---|---|---|
committer | boasting-squirrel <boasting.squirrel@gmail.com> | 2019-03-12 19:16:45 +0000 |
commit | 122a949ec49f84a49e7a5bec657a93a65faadce1 (patch) | |
tree | 1bf07eabea70fa767db1d79a002070c286bb1861 /src/archive.rs | |
parent | Added some error messages + reworked the print_error_chain method (diff) | |
download | miniserve-122a949ec49f84a49e7a5bec657a93a65faadce1.tar.gz miniserve-122a949ec49f84a49e7a5bec657a93a65faadce1.zip |
Better error messages for invalid path
Diffstat (limited to 'src/archive.rs')
-rw-r--r-- | src/archive.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/archive.rs b/src/archive.rs index 556fd69..9df1e5e 100644 --- a/src/archive.rs +++ b/src/archive.rs @@ -61,7 +61,21 @@ pub fn create_archive_file( /// Compresses a given folder in .tar.gz format fn tgz_compress(dir: &PathBuf) -> Result<(String, Bytes), errors::CompressionError> { let src_dir = dir.display().to_string(); - let inner_folder = dir.file_name()?.to_str()?; + let inner_folder = match dir.file_name() { + Some(directory_name) => match directory_name.to_str() { + Some(directory) => directory, + None => { + return Err(errors::CompressionError::new( + errors::CompressionErrorKind::InvalidUTF8DirectoryName, + )) + } + }, + None => { + return Err(errors::CompressionError::new( + errors::CompressionErrorKind::InvalidDirectoryName, + )) + } + }; let dst_filename = format!("{}.tar", inner_folder); let dst_tgz_filename = format!("{}.gz", dst_filename); |