]> git.ipfire.org Git - pakfire.git/commitdiff
libpakfire: transaction: Pass the open database down to steps
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 Jan 2021 21:17:57 +0000 (21:17 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 Jan 2021 21:17:57 +0000 (21:17 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/include/pakfire/step.h
src/libpakfire/step.c
src/libpakfire/transaction.c

index 03053cb4a8a5028e8fbdb4c9287c7498093c5224..a8f54ca616f3cbe435d101281858e5386529b9a8 100644 (file)
@@ -40,6 +40,8 @@ int pakfire_step_needs_download(PakfireStep step);
 
 #ifdef PAKFIRE_PRIVATE
 
+#include <pakfire/db.h>
+
 typedef enum _pakfire_script_types {
        PAKFIRE_SCRIPT_PREIN,
        PAKFIRE_SCRIPT_PREUN,
@@ -55,7 +57,7 @@ typedef enum _pakfire_script_types {
        PAKFIRE_SCRIPT_POSTTRANSUP,
 } pakfire_script_type;
 
-int pakfire_step_run(PakfireStep step, pakfire_action_type_t action);
+int pakfire_step_run(PakfireStep step, struct pakfire_db* db, pakfire_action_type_t action);
 
 #endif
 
index 59f857cadc4f8a5c316a77ea589599352cf20329..6f2a200546ef32752221adc99bd7ca50701ffc82 100644 (file)
@@ -28,6 +28,7 @@
 
 #include <pakfire/archive.h>
 #include <pakfire/constants.h>
+#include <pakfire/db.h>
 #include <pakfire/execute.h>
 #include <pakfire/logging.h>
 #include <pakfire/package.h>
@@ -457,7 +458,8 @@ static int pakfire_step_erase(PakfireStep step) {
        return 0; // TODO
 }
 
-PAKFIRE_EXPORT int pakfire_step_run(PakfireStep step, const pakfire_action_type_t action) {
+PAKFIRE_EXPORT int pakfire_step_run(PakfireStep step,
+               struct pakfire_db* db, const pakfire_action_type_t action) {
        DEBUG(step->pakfire, "Running Step %p (%s)\n", step, pakfire_action_type_string(action));
 
        pakfire_step_type_t type = pakfire_step_get_type(step);
index fe0d9ed7c5540602e5a79f266f3835681a9c013a..208d7256657246411197e4349ffa176aa7fcdfec 100644 (file)
@@ -311,7 +311,8 @@ PAKFIRE_EXPORT char* pakfire_transaction_dump(PakfireTransaction transaction, si
        return string;
 }
 
-static int pakfire_transaction_run_steps(PakfireTransaction transaction, const pakfire_action_type_t action) {
+static int pakfire_transaction_run_steps(PakfireTransaction transaction,
+               struct pakfire_db* db, const pakfire_action_type_t action) {
        int r = 0;
 
        // Walk through all steps
@@ -320,7 +321,7 @@ static int pakfire_transaction_run_steps(PakfireTransaction transaction, const p
                PakfireStep step = *steps++;
 
                // Verify the step
-               r = pakfire_step_run(step, action);
+               r = pakfire_step_run(step, db, action);
 
                // End loop if action was unsuccessful
                if (r) {
@@ -346,21 +347,21 @@ PAKFIRE_EXPORT int pakfire_transaction_run(PakfireTransaction transaction) {
        }
 
        // Verify steps
-       r = pakfire_transaction_run_steps(transaction, PAKFIRE_ACTION_VERIFY);
+       r = pakfire_transaction_run_steps(transaction, db, PAKFIRE_ACTION_VERIFY);
        if (r)
                goto ERROR;
 
        // Execute all pre transaction actions
-       r = pakfire_transaction_run_steps(transaction, PAKFIRE_ACTION_PRETRANS);
+       r = pakfire_transaction_run_steps(transaction, db, PAKFIRE_ACTION_PRETRANS);
        if (r)
                goto ERROR;
 
-       r = pakfire_transaction_run_steps(transaction, PAKFIRE_ACTION_EXECUTE);
+       r = pakfire_transaction_run_steps(transaction, db, PAKFIRE_ACTION_EXECUTE);
        if (r)
                goto ERROR;
 
        // Execute all post transaction actions
-       r = pakfire_transaction_run_steps(transaction, PAKFIRE_ACTION_POSTTRANS);
+       r = pakfire_transaction_run_steps(transaction, db, PAKFIRE_ACTION_POSTTRANS);
        if (r)
                goto ERROR;