pmb.helpers.other.folder_size: use kilobytes (MR 2074)

busybox du doesn't support bytes or custom block sizes.
This commit is contained in:
Maxim Karasev 2021-06-24 02:50:47 +03:00 committed by Alexey Min
parent 5c1da79634
commit 31e7a0006d
No known key found for this signature in database
GPG Key ID: EBF5ECFFFEE34DED
4 changed files with 6 additions and 7 deletions

View File

@ -88,7 +88,7 @@ def zap(args, confirm=True, dry=False, pkgs_local=False, http=False,
logging.info("Dry run: nothing has been deleted") logging.info("Dry run: nothing has been deleted")
else: else:
size_new = pmb.helpers.other.folder_size(args, args.work) size_new = pmb.helpers.other.folder_size(args, args.work)
mb = (size_old - size_new) / 1024 / 1024 mb = (size_old - size_new) / 1024
logging.info(f"Cleared up ~{math.ceil(mb)} MB of space") logging.info(f"Cleared up ~{math.ceil(mb)} MB of space")

View File

@ -17,10 +17,9 @@ def folder_size(args, path):
faster than doing the same task in pure Python). This result is only faster than doing the same task in pure Python). This result is only
approximatelly right, but good enough for pmbootstrap's use case (#760). approximatelly right, but good enough for pmbootstrap's use case (#760).
:returns: folder size in bytes :returns: folder size in kilobytes
""" """
output = pmb.helpers.run.root(args, ["du", "--summarize", output = pmb.helpers.run.root(args, ["du", "-ks",
"--block-size=1",
path], output_return=True) path], output_return=True)
# Only look at last line to filter out sudo garbage (#1766) # Only look at last line to filter out sudo garbage (#1766)

View File

@ -49,7 +49,7 @@ def get_subpartitions_size(args, suffix):
# calculation is not as trivial as one may think, and depending on the # calculation is not as trivial as one may think, and depending on the
# file system etc it seems to be just impossible to get it right. # file system etc it seems to be just impossible to get it right.
chroot = f"{args.work}/chroot_{suffix}" chroot = f"{args.work}/chroot_{suffix}"
root = pmb.helpers.other.folder_size(args, chroot) / 1024 / 1024 root = pmb.helpers.other.folder_size(args, chroot) / 1024
root *= 1.20 root *= 1.20
root += 50 + int(args.extra_space) root += 50 + int(args.extra_space)
return (boot, root) return (boot, root)

View File

@ -31,7 +31,7 @@ def test_get_folder_size(args, tmpdir):
# Check if the size is correct. Unfortunately, the `du` call # Check if the size is correct. Unfortunately, the `du` call
# in pmb.helpers.other.folder_size is not very accurate, so we # in pmb.helpers.other.folder_size is not very accurate, so we
# allow 30kb of tolerance (good enough for our use case): #760 #1717 # allow 30kb of tolerance (good enough for our use case): #760 #1717
tolerance = 30 * 1024 tolerance = 30
size = 204800 * files size = 200 * files
result = pmb.helpers.other.folder_size(args, tmpdir) result = pmb.helpers.other.folder_size(args, tmpdir)
assert (result < size + tolerance and result > size - tolerance) assert (result < size + tolerance and result > size - tolerance)