diff options
author | Sören Tempel <soeren+git@soeren-tempel.net> | 2018-10-11 13:39:25 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2020-01-05 23:26:50 +0200 |
commit | a6039e38a42cc977f7f9da3dcc69e7f98317b4c1 (patch) | |
tree | 630e5b6709d6878240b80aca488b19b4d1868ee7 /src/info.c | |
parent | 0b82bcc53e6027c74fae2c972d5d9fff54d95d6c (diff) | |
download | apk-tools-a6039e38a42cc977f7f9da3dcc69e7f98317b4c1.tar.gz apk-tools-a6039e38a42cc977f7f9da3dcc69e7f98317b4c1.tar.bz2 apk-tools-a6039e38a42cc977f7f9da3dcc69e7f98317b4c1.tar.xz apk-tools-a6039e38a42cc977f7f9da3dcc69e7f98317b4c1.zip |
Humanize size output of `apk info`
This commits adds a function for receiving the closet byte unit and the
size in that unit for a given size_t. The function doesn't return a
string since dynamic memory allocation (or a static buffer) would be
required to implement this properly.
Discussion: It might be useful to add a command line flag for disabling
this behaviour in order to retain compatibility with the previous apk
info output format.
Diffstat (limited to 'src/info.c')
-rw-r--r-- | src/info.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -179,12 +179,16 @@ static void info_print_license(struct apk_database *db, struct apk_package *pkg) static void info_print_size(struct apk_database *db, struct apk_package *pkg) { + off_t size; + const char *size_unit; + + size_unit = apk_get_human_size(pkg->installed_size, &size); if (apk_verbosity > 1) - printf("%s: %zu", pkg->name->name, pkg->installed_size); + printf("%s: %lld %s", pkg->name->name, + (long long)size, size_unit); else - printf(PKG_VER_FMT " installed size:\n%zu\n", - PKG_VER_PRINTF(pkg), - pkg->installed_size); + printf(PKG_VER_FMT " installed size:\n%lld %s\n", + PKG_VER_PRINTF(pkg), (long long)size, size_unit); } static void info_print_dep_array(struct apk_database *db, struct apk_package *pkg, |