From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <c.ebner@proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id E424890B6A
 for <pbs-devel@lists.proxmox.com>; Thu, 25 Jan 2024 14:26:31 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id A279A19B2B
 for <pbs-devel@lists.proxmox.com>; Thu, 25 Jan 2024 14:26:31 +0100 (CET)
Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com
 [94.136.29.106])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS
 for <pbs-devel@lists.proxmox.com>; Thu, 25 Jan 2024 14:26:30 +0100 (CET)
Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1])
 by proxmox-new.maurer-it.com (Proxmox) with ESMTP id E85FA492B3
 for <pbs-devel@lists.proxmox.com>; Thu, 25 Jan 2024 14:26:29 +0100 (CET)
From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Thu, 25 Jan 2024 14:26:03 +0100
Message-Id: <20240125132608.1172472-25-c.ebner@proxmox.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240125132608.1172472-1-c.ebner@proxmox.com>
References: <20240125132608.1172472-1-c.ebner@proxmox.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.052 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 T_SCC_BODY_TEXT_LINE    -0.01 -
Subject: [pbs-devel] [PATCH v6 proxmox-backup 24/29] tools: add optional
 path prefix to line based output
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Thu, 25 Jan 2024 13:26:31 -0000

By default, the shown path is the one stored in the entry.
When printing pxar entries from the appendix section, that path is
however incomplete and has to be prefixed by the base path.

Allow to pass this base path to be shown as prefix to path stored in
the entry itself.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
Changes since v5:
- not present in previous version

 pbs-client/src/pxar/tools.rs | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/pbs-client/src/pxar/tools.rs b/pbs-client/src/pxar/tools.rs
index 52e025e4..0f44b5dd 100644
--- a/pbs-client/src/pxar/tools.rs
+++ b/pbs-client/src/pxar/tools.rs
@@ -123,7 +123,7 @@ fn format_mtime(mtime: &StatxTimestamp) -> String {
     format!("{}.{}", mtime.secs, mtime.nanos)
 }
 
-pub fn format_single_line_entry(entry: &Entry) -> String {
+pub fn format_single_line_entry(entry: &Entry, base_path: Option<&Path>) -> String {
     let mode_string = mode_string(entry);
 
     let meta = entry.metadata();
@@ -138,14 +138,14 @@ pub fn format_single_line_entry(entry: &Entry) -> String {
 
     let owner_string = format!("{}/{}", meta.stat.uid, meta.stat.gid);
 
+    let path = match base_path {
+        Some(base_path) => base_path.join(entry.path().strip_prefix("/").unwrap()),
+        None => entry.path().to_path_buf(),
+    };
+
     format!(
-        "{} {:<13} {} {:>8} {:?}{}",
-        mode_string,
-        owner_string,
+        "{mode_string} {owner_string:<13} {} {size:>8} {path:?}{link}",
         format_mtime(&meta.stat.mtime),
-        size,
-        entry.path(),
-        link,
     )
 }
 
-- 
2.39.2