From: Stefan Sterz <s.sterz@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH proxmox-backup v1 1/2] fix #4001: datastore/catalog: add number of files to directory entry
Date: Thu, 5 May 2022 15:52:51 +0200 [thread overview]
Message-ID: <20220505135252.466838-5-s.sterz@proxmox.com> (raw)
In-Reply-To: <20220505135252.466838-1-s.sterz@proxmox.com>
when listing the content of a catalog, add the number of files
contained in the directory as its size. also removes redundant code,
the size of a file is already set when creating the archive entry.
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
---
this requires patch two from the widget toolkit part of this patch to
be applied already. otherwise the formatting and sorting of the folder
"size" will be wrong.
pbs-datastore/src/catalog.rs | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/pbs-datastore/src/catalog.rs b/pbs-datastore/src/catalog.rs
index c07b71a6..6cb8aeb4 100644
--- a/pbs-datastore/src/catalog.rs
+++ b/pbs-datastore/src/catalog.rs
@@ -706,10 +706,11 @@ impl<R: Read + Seek> CatalogReader<R> {
components.push(b'/');
components.extend(&direntry.name);
let mut entry = ArchiveEntry::new(&components, Some(&direntry.attr));
- if let DirEntryAttribute::File { size, mtime } = direntry.attr {
- entry.size = size.into();
- entry.mtime = mtime.into();
+
+ if let DirEntryAttribute::Directory { start: _ } = direntry.attr {
+ entry.size = Some(u64::try_from(self.read_dir(&direntry)?.len())?);
}
+
res.push(entry);
}
@@ -911,7 +912,8 @@ pub struct ArchiveEntry {
pub entry_type: String,
/// Is this entry a leaf node, or does it have children (i.e. a directory)?
pub leaf: bool,
- /// The file size, if entry_type is 'f' (file)
+ /// The file size, if entry_type is 'f' (file) or the amount of files in a
+ /// directory if entry_type is 'd' (directory)
#[serde(skip_serializing_if = "Option::is_none")]
pub size: Option<u64>,
/// The file "last modified" time stamp, if entry_type is 'f' (file)
--
2.30.2
next prev parent reply other threads:[~2022-05-05 13:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-05 13:52 [pbs-devel] [PATCH proxmox-backup v1] fixes #4001: file explorer/download UX improvements Stefan Sterz
2022-05-05 13:52 ` [pbs-devel] [PATCH widget-toolkit v1 1/3] fix #4001: FileBrowser: add menu to button and selected entry label Stefan Sterz
2022-05-05 13:52 ` [pbs-devel] [PATCH widget-toolkit v1 2/3] fix #4001: FileBrowser: show number of items in a directory as size Stefan Sterz
2022-05-05 13:52 ` [pbs-devel] [PATCH widget-toolkit v1 3/3] fix #4001: FileBrowser: add a configurable prefix to downloaded files Stefan Sterz
2022-05-05 13:52 ` Stefan Sterz [this message]
2022-05-12 15:27 ` [pbs-devel] [PATCH proxmox-backup v1 1/2] fix #4001: datastore/catalog: add number of files to directory entry Thomas Lamprecht
2022-05-13 7:18 ` Stefan Sterz
2022-05-05 13:52 ` [pbs-devel] [PATCH proxmox-backup v1 2/2] fix #4001: ui: add prefix to files downloaded through the pxar browser Stefan Sterz
2022-05-16 13:31 ` [pbs-devel] applied-series: [PATCH proxmox-backup v1] fixes #4001: file explorer/download UX improvements Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220505135252.466838-5-s.sterz@proxmox.com \
--to=s.sterz@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox