From 7c5df010c9f32a299edba98153d4e6e9a5ba8c4b Mon Sep 17 00:00:00 2001 From: Jose Quintana <1700322+joseluisq@users.noreply.github.com> Date: Wed, 11 Oct 2023 23:10:49 +0200 Subject: [PATCH] fix: json dir listing wrong `directory` type for empty files (#271) fixes #270 --- src/directory_listing.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/directory_listing.rs b/src/directory_listing.rs index d6b81bf..9d0a235 100644 --- a/src/directory_listing.rs +++ b/src/directory_listing.rs @@ -131,6 +131,7 @@ struct FileEntry { name_encoded: String, modified: Option>, filesize: u64, + is_dir: bool, uri: Option, } @@ -286,11 +287,14 @@ async fn read_dir_entries( None } }; + let is_dir = meta.is_dir(); + file_entries.push(FileEntry { name, name_encoded, modified, filesize, + is_dir, uri, }); } @@ -364,8 +368,7 @@ fn json_auto_index(entries: &mut [FileEntry], order_code: u8) -> Result for entry in entries { let file_size = &entry.filesize; let file_name = &entry.name; - let is_empty = *file_size == 0_u64; - let file_type = if is_empty { "directory" } else { "file" }; + let file_type = if entry.is_dir { "directory" } else { "file" }; let file_modified = &entry.modified; json.push('{'); @@ -380,7 +383,7 @@ fn json_auto_index(entries: &mut [FileEntry], order_code: u8) -> Result }); json.push_str(format!("\"mtime\":\"{file_modified_str}\"").as_str()); - if !is_empty { + if !entry.is_dir { json.push_str(format!(",\"size\":{file_size}").as_str()); } json.push_str("},"); -- libgit2 1.7.2