]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/cmd/web.py
Remove Client __del__ in favor of context management
[bup.git] / lib / bup / cmd / web.py
index 7de8ed72c6bcc840f8bdfd6ef70c69a403c77b74..20333cbbbb47f11b9685ef7186a029ade7c75ed8 100755 (executable)
@@ -64,7 +64,7 @@ def _dir_contents(repo, resolution, show_hidden=False):
 
     url_query = b'?hidden=1' if show_hidden else b''
 
-    def display_info(name, item, resolved_item, display_name=None):
+    def display_info(name, item, resolved_item, display_name=None, omitsize=False):
         global opt
         # link should be based on fully resolved type to avoid extra
         # HTTP redirect.
@@ -73,18 +73,23 @@ def _dir_contents(repo, resolution, show_hidden=False):
             link += '/'
         link = link.encode('ascii')
 
-        size = vfs.item_size(repo, item)
-        if opt.human_readable:
-            display_size = format_filesize(size)
+        if not omitsize:
+            size = vfs.item_size(repo, item)
+            if opt.human_readable:
+                display_size = format_filesize(size)
+            else:
+                display_size = size
         else:
-            display_size = size
+            display_size = None
 
         if not display_name:
             mode = vfs.item_mode(item)
             if stat.S_ISDIR(mode):
                 display_name = name + b'/'
+                display_size = None
             elif stat.S_ISLNK(mode):
                 display_name = name + b'@'
+                display_size = None
             else:
                 display_name = name
 
@@ -97,7 +102,7 @@ def _dir_contents(repo, resolution, show_hidden=False):
                 continue
         if name == b'.':
             parent_item = resolution[-2][1] if len(resolution) > 1 else dir_item
-            yield display_info(b'..', parent_item, parent_item, b'..')
+            yield display_info(b'..', parent_item, parent_item, b'..', omitsize=True)
             continue
         res_item = vfs.ensure_item_has_metadata(repo, item, include_size=True)
         yield display_info(name, item, res_item)