aboutsummaryrefslogtreecommitdiffstats
path: root/src/archive.rs
diff options
context:
space:
mode:
authorboasting-squirrel <boasting.squirrel@gmail.com>2019-03-12 19:16:45 +0000
committerboasting-squirrel <boasting.squirrel@gmail.com>2019-03-12 19:16:45 +0000
commit122a949ec49f84a49e7a5bec657a93a65faadce1 (patch)
tree1bf07eabea70fa767db1d79a002070c286bb1861 /src/archive.rs
parentAdded some error messages + reworked the print_error_chain method (diff)
downloadminiserve-122a949ec49f84a49e7a5bec657a93a65faadce1.tar.gz
miniserve-122a949ec49f84a49e7a5bec657a93a65faadce1.zip
Better error messages for invalid path
Diffstat (limited to 'src/archive.rs')
-rw-r--r--src/archive.rs16
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);