changeset 19:2f9e702e3f7a

Convert backslashes in filenames to forward slashes when creating digests
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 05 Dec 2020 00:13:27 +0100
parents 285848db0b52
children 8f0241ed4a00
files shasum.py
diffstat 1 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/shasum.py	Fri Dec 04 23:22:30 2020 +0100
+++ b/shasum.py	Sat Dec 05 00:13:27 2020 +0100
@@ -256,7 +256,9 @@
     if filename is None:
         print(digest, file=dest)
     else:
-        print("{} ({}) = {}".format(digestname, filename, digest),
+        print("{} ({}) = {}".format(digestname,
+                                    normalize_filename(filename),
+                                    digest),
               file=dest)
 
 
@@ -264,9 +266,10 @@
     """Coreutils format (:command:`shasum` et al.)
 
     """
-    print("{} {}{}".format(digest,
-                           '*' if binary else ' ',
-                           '-' if filename is None else filename),
+    print("{} {}{}".format(
+                digest,
+                '*' if binary else ' ',
+                '-' if filename is None else normalize_filename(filename)),
           file=dest)
 
 
@@ -289,5 +292,13 @@
     return h.hexdigest()
 
 
+def normalize_filename(filename, strip_leading_dot_slash=False):
+    filename = filename.replace("\\", "/")
+    if strip_leading_dot_slash:
+        while filename.startswith("./"):
+            filename = filename[2:]
+    return filename
+
+
 if __name__ == "__main__":
     sys.exit(main())