if (pakfire_transaction_count(transaction))
*snapshot_needs_update = 1;
- // Download
- r = pakfire_transaction_download(transaction);
- if (r)
- goto ERROR;
-
// Run the transaction
r = pakfire_transaction_run(transaction);
if (r)
return 0;
}
-PAKFIRE_EXPORT int pakfire_transaction_run(struct pakfire_transaction* transaction) {
+static int pakfire_transaction_perform(struct pakfire_transaction* transaction) {
PakfireRepo repo = NULL;
struct pakfire_db* db;
int r;
return r;
}
+
+PAKFIRE_EXPORT int pakfire_transaction_run(struct pakfire_transaction* transaction) {
+ int r;
+
+ // Skip running an empty transaction
+ if (!transaction->num) {
+ DEBUG(transaction->pakfire, "Empty transaction. Skipping...\n");
+ return 0;
+ }
+
+ // Download what we need
+ r = pakfire_transaction_download(transaction);
+ if (r)
+ return r;
+
+ // Perform all steps
+ r = pakfire_transaction_perform(transaction);
+ if (r)
+ return r;
+
+ return 0;
+}