#include <archive_entry.h>
#include <pakfire/archive_writer.h>
+#include <pakfire/progress.h>
#include <pakfire/string.h>
struct pakfire_archive_writer {
// Resolver for hardlinks
struct archive_entry_linkresolver* linkresolver;
+
+ // Progress Status
+ struct pakfire_progress* progress;
};
/*
static void pakfire_archive_writer_free(struct pakfire_archive_writer* self) {
if (self->linkresolver)
archive_entry_linkresolver_free(self->linkresolver);
+ if (self->progress)
+ pakfire_progress_unref(self->progress);
if (self->archive)
archive_write_free(self->archive);
if (self->pakfire)
if (r < 0)
goto ERROR;
+ int progress_flags =
+ PAKFIRE_PROGRESS_SHOW_PERCENTAGE |
+ PAKFIRE_PROGRESS_SHOW_BYTES_TRANSFERRED |
+ PAKFIRE_PROGRESS_SHOW_TRANSFER_SPEED;
+
+ // Create the progress indicator
+ r = pakfire_progress_create(&self->progress, self->ctx, progress_flags, NULL);
+ if (r < 0)
+ goto ERROR;
+
// Return the pointer
*writer = self;
return 0;