]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
compress: Add flag to disable the progress bar
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 23 Aug 2022 15:12:07 +0000 (15:12 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 23 Aug 2022 15:12:07 +0000 (15:12 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/compress.c
src/libpakfire/include/pakfire/compress.h

index a83924d207eb1d52aedb0812497e797983f141d8..16c9ef3f3310a295af654008bbe8379feda2e8b2 100644 (file)
@@ -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;
 
index 66565ab8f3d4cd87bd2603514abeb5cdbb84c452..9ade14a2046e671fb2fe229bf17da3b622c75bea 100644 (file)
@@ -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,