#include <pakfire/file.h>
#include <pakfire/filelist.h>
#include <pakfire/logging.h>
-#include <pakfire/progressbar.h>
+#include <pakfire/progress.h>
#include <pakfire/string.h>
#include <pakfire/util.h>
if (flags & PAKFIRE_EXTRACT_SHOW_THROUGHPUT)
progress_flags |= PAKFIRE_PROGRESS_SHOW_TRANSFER_SPEED;
- // Create the progressbar indicator
+ // Create the progress indicator
r = pakfire_progress_create(&data.progress, pakfire, progress_flags);
if (r)
goto ERROR;
if (r)
goto ERROR;
- // Finish the progressbar
+ // Finish the progress
r = pakfire_progress_finish(data.progress);
if (r)
goto ERROR;
// The filelist of all files to write
struct pakfire_filelist* filelist;
- // The progressbar
- struct pakfire_progressbar* progressbar;
+ // The progress indicator
+ struct pakfire_progress* progress;
// Digests to write to the archive
int digests;
};
-static int pakfire_compress_progressbar_create(struct pakfire_progressbar** progressbar,
- const char* message, int flags) {
- int r;
-
- // Create the progressbar
- r = pakfire_progressbar_create(progressbar, NULL);
- if (r)
- return r;
-
- // Add message
- if (message) {
- r = pakfire_progressbar_add_string(*progressbar, "%s", message);
- if (r)
- return r;
- }
-
- // Add bar
- r = pakfire_progressbar_add_bar(*progressbar);
- if (r)
- return r;
-
- // Add throughput
- if (flags & PAKFIRE_COMPRESS_SHOW_THROUGHPUT) {
- r = pakfire_progressbar_add_transfer_speed(*progressbar);
- if (r)
- return r;
- }
-
- // Show how many bytes have been written
- r = pakfire_progressbar_add_bytes_transferred(*progressbar);
- if (r)
- return r;
-
- // Add percentage
- r = pakfire_progressbar_add_percentage(*progressbar);
- if (r)
- return r;
-
- // Success
- return 0;
-}
-
static int __pakfire_compress_entry(struct pakfire* pakfire, struct pakfire_file* file,
struct pakfire_compress* data, struct archive_entry* entry) {
FILE* f = NULL;
goto ERROR;
}
- // Update the progressbar
- if (data->progressbar)
- pakfire_progressbar_increment(data->progressbar, size);
+ // Update the progress
+ pakfire_progress_increment(data->progress, size);
ERROR:
if (entry)
int pakfire_compress(struct pakfire* pakfire, struct archive* archive,
struct pakfire_filelist* filelist, const char* message, int flags, int digests) {
+ int progress_flags =
+ PAKFIRE_PROGRESS_SHOW_PERCENTAGE |
+ PAKFIRE_PROGRESS_SHOW_BYTES_TRANSFERRED;
int r = 1;
struct pakfire_compress data = {
};
// Should we show a progress bar?
- const int no_progress = flags & PAKFIRE_COMPRESS_NO_PROGRESS;
+ if (flags & PAKFIRE_COMPRESS_NO_PROGRESS)
+ progress_flags |= PAKFIRE_PROGRESS_NO_PROGRESS;
+
+ // Should we show throughput?
+ if (flags & PAKFIRE_COMPRESS_SHOW_THROUGHPUT)
+ progress_flags |= PAKFIRE_PROGRESS_SHOW_TRANSFER_SPEED;
// Fetch the length of the filelist
const size_t size = pakfire_filelist_total_size(filelist);
- // Create the progressbar
- if (!no_progress) {
- r = pakfire_compress_progressbar_create(&data.progressbar, message, flags);
- if (r)
- goto ERROR;
+ // Create the progress indicator
+ r = pakfire_progress_create(&data.progress, pakfire, progress_flags);
+ if (r)
+ goto ERROR;
- // Start progressbar
- pakfire_progressbar_start(data.progressbar, size);
- }
+ // Set progress title
+ r = pakfire_progress_set_title(data.progress, "%s", message);
+ if (r)
+ goto ERROR;
+
+ // Start progress
+ r = pakfire_progress_start(data.progress, size);
+ if (r)
+ goto ERROR;
// Setup the link resolver
data.linkresolver = archive_entry_linkresolver_new();
if (r)
goto ERROR;
- // Finish the progressbar
- if (data.progressbar)
- pakfire_progressbar_finish(data.progressbar);
+ // Finish the progress
+ if (data.progress)
+ pakfire_progress_finish(data.progress);
ERROR:
- if (data.progressbar)
- pakfire_progressbar_unref(data.progressbar);
+ if (data.progress)
+ pakfire_progress_unref(data.progress);
if (data.linkresolver)
archive_entry_linkresolver_free(data.linkresolver);