]> git.ipfire.org Git - people/ms/bricklayer.git/commitdiff
disk: Show disk size in list
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 7 May 2021 14:24:41 +0000 (14:24 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 7 May 2021 14:24:41 +0000 (14:24 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/python/disk.py
src/python/util.py

index 8a64ea81e0caf8957d4573393c4bbbb53a8e0c38..b7598051e28403dae396af773feb43d9f3ddeb4c 100644 (file)
@@ -109,7 +109,7 @@ class Disk(object):
                return "<%s %s>" % (self.__class__.__name__, self)
 
        def __str__(self):
-               return "%s - %s" % (self.model, self.path)
+               return "%s (%s)" % (self.model, util.format_size(self.size))
 
        def __hash__(self):
                return hash(self.path)
@@ -147,7 +147,11 @@ class Disk(object):
 
        @property
        def model(self):
-               return self.device.model
+               return self.device.model or _("Unknown Model")
+
+       @property
+       def size(self):
+               return self.device.length * self.device.sectorSize
 
 
 class SelectDisk(step.InteractiveStep):
index 9f1068578ecc8435ed210af8756603c2de86fc9c..7cb68687a07cf03664a29e8b969cbddece4fceab 100644 (file)
@@ -54,3 +54,24 @@ def create_sparse_file(name, size):
        os.close(fd)
 
        return path
+
+def format_size(s):
+       units = (
+               "%.0f ",
+               "%.0fk",
+               "%.1fM",
+               "%.1fG",
+               "%.1fT",
+               "%.1fP",
+               "%.1fE",
+       )
+
+       unit = None
+
+       for unit in units:
+               if abs(s) < 1024:
+                       break
+
+               s /= 1024
+
+       return unit % s