From: Michael Tremer Date: Thu, 29 Apr 2021 11:15:11 +0000 (+0000) Subject: archive: Use package for progressbar styling X-Git-Tag: 0.9.28~1285^2~194 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7a82ba4e5fb09c083a60d69342be2acdbf9f997;p=pakfire.git archive: Use package for progressbar styling Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index 0bdc45df2..620e316a0 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -796,56 +796,47 @@ struct pakfire_archive_extractor { static int pakfire_archive_extract_progressbar( PakfireArchive archive, struct pakfire_progressbar** progressbar) { - char* name = pakfire_archive_get(archive, "package", "name"); - char* arch = pakfire_archive_get(archive, "package", "arch"); - - char* evr = pakfire_archive_get(archive, "package", "evr"); - - // For old style packages, we need to make evr manually - if (!evr) { - char* e = pakfire_archive_get(archive, "package", "epoch"); - char* v = pakfire_archive_get(archive, "package", "version"); - char* r = pakfire_archive_get(archive, "package", "release"); + PakfireRepo repo = NULL; + PakfirePackage pkg = NULL; + int r = 1; - evr = pakfire_package_join_evr(e, v, r); + // Fetch the dummy repository + repo = pakfire_get_repo(archive->pakfire, "@dummy"); + if (!repo) + goto ERROR; - if (e) - free(e); - if (v) - free(v); - if (r) - free(r); - } + // Fetch package data from archive + pkg = pakfire_archive_make_package(archive, repo); + if (!pkg) + goto ERROR; - int err = pakfire_progressbar_create(progressbar, NULL); - if (err) + r = pakfire_progressbar_create(progressbar, NULL); + if (r) goto ERROR; // Add progressbar widgets - err = pakfire_progressbar_add_string(*progressbar, "%s-%s.%s", name, evr, arch); - if (err) + r = pakfire_progressbar_add_string(*progressbar, "%s", pakfire_package_get_nevra(pkg)); + if (r) goto ERROR; - err = pakfire_progressbar_add_bar(*progressbar); - if (err) + r = pakfire_progressbar_add_bar(*progressbar); + if (r) goto ERROR; - err = pakfire_progressbar_add_percentage(*progressbar); - if (err) + r = pakfire_progressbar_add_percentage(*progressbar); + if (r) goto ERROR; // Success - err = 0; + r = 0; ERROR: - if (name) - free(name); - if (arch) - free(arch); - if (evr) - free(evr); + if (pkg) + pakfire_package_unref(pkg); + if (repo) + pakfire_repo_unref(repo); - return err; + return r; } static int pakfire_archive_extract_entry(PakfireArchive archive,