From: Michael Tremer Date: Sat, 5 Jun 2021 12:29:31 +0000 (+0000) Subject: transaction: Create a convenience function to run transactions X-Git-Tag: 0.9.28~1285^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0fa672da783556dcb191a690bb2488a3f636c37;p=pakfire.git transaction: Create a convenience function to run transactions Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/build.c b/src/libpakfire/build.c index 43141ca7d..84edceded 100644 --- a/src/libpakfire/build.c +++ b/src/libpakfire/build.c @@ -108,11 +108,6 @@ static int pakfire_build_install_packages(Pakfire pakfire, int* snapshot_needs_u 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) diff --git a/src/libpakfire/transaction.c b/src/libpakfire/transaction.c index ed203d95a..3954348a0 100644 --- a/src/libpakfire/transaction.c +++ b/src/libpakfire/transaction.c @@ -737,7 +737,7 @@ static int pakfire_transaction_open_archives(struct pakfire_transaction* transac 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; @@ -901,3 +901,25 @@ ERROR: 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; +} diff --git a/src/pakfire/cli.py b/src/pakfire/cli.py index 325beb628..338d1fd28 100644 --- a/src/pakfire/cli.py +++ b/src/pakfire/cli.py @@ -300,9 +300,6 @@ class Cli(object): self.ui.message(_("Aborted by user")) return - # Download transaction - transaction.download() - # Run the transaction transaction.run()