From: Michael Tremer Date: Tue, 23 Aug 2022 15:12:07 +0000 (+0000) Subject: compress: Add flag to disable the progress bar X-Git-Tag: 0.9.28~401 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5880b6acb059a9d9461e37b3f2f2e80a4de462b1;p=people%2Fms%2Fpakfire.git compress: Add flag to disable the progress bar Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/compress.c b/src/libpakfire/compress.c index a83924d20..16c9ef3f3 100644 --- a/src/libpakfire/compress.c +++ b/src/libpakfire/compress.c @@ -680,6 +680,9 @@ int pakfire_extract(struct pakfire* pakfire, struct archive* archive, // Is this a dry run? const int dry_run = flags & PAKFIRE_EXTRACT_DRY_RUN; + // Should we show a progress bar? + const int no_progress = flags & PAKFIRE_EXTRACT_NO_PROGRESS; + // Set prefix (including pakfire path) r = pakfire_path(pakfire, data.prefix, "%s", prefix); if (r) @@ -696,18 +699,18 @@ int pakfire_extract(struct pakfire* pakfire, struct archive* archive, } // Create the progressbar - r = pakfire_extract_progressbar_create(&data.progressbar, message, flags); - if (r) - goto ERROR; + if (!no_progress) { + r = pakfire_extract_progressbar_create(&data.progressbar, message, flags); + if (r) + goto ERROR; - // Register progress callback - if (data.progressbar) + // Register progress callback archive_read_extract_set_progress_callback(data.archive, pakfire_extract_progress, &data); - // Start progressbar - if (data.progressbar) + // Start progressbar pakfire_progressbar_start(data.progressbar, size); + } struct archive_entry* entry = NULL; diff --git a/src/libpakfire/include/pakfire/compress.h b/src/libpakfire/include/pakfire/compress.h index 66565ab8f..9ade14a20 100644 --- a/src/libpakfire/include/pakfire/compress.h +++ b/src/libpakfire/include/pakfire/compress.h @@ -39,7 +39,8 @@ FILE* pakfire_zstdfopen(FILE* f, const char* mode); // Extract enum pakfire_extract_flags { PAKFIRE_EXTRACT_DRY_RUN = (1 << 0), - PAKFIRE_EXTRACT_SHOW_THROUGHPUT = (1 << 1), + PAKFIRE_EXTRACT_NO_PROGRESS = (1 << 1), + PAKFIRE_EXTRACT_SHOW_THROUGHPUT = (1 << 2), }; int pakfire_extract(struct pakfire* pakfire, struct archive* archive,