changeset 127:6a50d02fe0ca

Change the filename output: make it more consistent
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 02 Jan 2025 17:46:50 +0100
parents dfe7bb0579e2
children 7c646921a479
files cutils/treesum.py
diffstat 1 files changed, 7 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/cutils/treesum.py	Thu Jan 02 17:09:50 2025 +0100
+++ b/cutils/treesum.py	Thu Jan 02 17:46:50 2025 +0100
@@ -164,10 +164,7 @@
                 linkdgst.update(linktgt)
                 dir_dgst.update(b"1:S,%d:%s," % (len(dn.fsname), dn.fsname))
                 dir_dgst.update(linkdgst.digest())
-                if top:
-                    opath = "/".join(top) + "/" + dn.name
-                else:
-                    opath = dn.name
+                opath = "/".join(top) + "/" + dn.name if top else dn.name
                 outfp.write(
                     format_bsd_line(
                         algorithm[1],
@@ -185,15 +182,13 @@
             dgst = digest.compute_digest_file(
                 algorithm[0], fn.path, use_mmap=use_mmap)
             dir_dgst.update(dgst)
-            if top:
-                opath = "/".join(top) + "/" + fn.name
-            else:
-                opath = fn.name
+            opath = "/".join(top) + "/" + fn.name if top else fn.name
             outfp.write(format_bsd_line(
                 algorithm[1], dgst, opath, use_base64))
             outfp.flush()
+        opath = "/".join(top) + "/" if top else ""
         outfp.write(format_bsd_line(
-            algorithm[1], dir_dgst.digest(), "/".join(top) + "/", use_base64))
+            algorithm[1], dir_dgst.digest(), opath, use_base64))
         outfp.flush()
         dir_digests[top] = dir_dgst.digest()
 
@@ -211,8 +206,9 @@
         digest = base64.b64encode(digest)
     else:
         digest = binascii.hexlify(digest)
-    return b"%s (%s) = %s%s" \
-           % (digestname, util.normalize_filename(filename, True), digest, ls)
+    if filename != b"/./@":
+        filename = util.normalize_filename(filename, True)
+    return b"%s (%s) = %s%s" % (digestname, filename, digest, ls)
 
 
 if __name__ == "__main__":