]> git.ipfire.org Git - pakfire.git/commitdiff
Add flags to clean function for better extensibility
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Jun 2021 13:04:18 +0000 (13:04 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Jun 2021 13:04:18 +0000 (13:04 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/_pakfire/pakfire.c
src/_pakfire/repo.c
src/libpakfire/include/pakfire/pakfire.h
src/libpakfire/include/pakfire/repo.h
src/libpakfire/pakfire.c
src/libpakfire/repo.c

index c8e17fab1d1c98af501f9d498a2053d8bb9288a4..ca62a9bf104baf45ffece8707a7b80a42e01af74 100644 (file)
@@ -850,7 +850,7 @@ static PyObject* Pakfire_shell(PakfireObject* self) {
 }
 
 static PyObject* Pakfire_clean(PakfireObject* self) {
-       int r = pakfire_clean(self->pakfire);
+       int r = pakfire_clean(self->pakfire, 0);
        if (r) {
                PyErr_SetFromErrno(PyExc_OSError);
                return NULL;
index fc22ceb4b8119774f4cd680d4b6b3cb5642ed4ea..e592c8dad3a021ff571e3c9ffb8c20413e0d81dd 100644 (file)
@@ -311,7 +311,7 @@ static PyObject* Repo_add_archive(RepoObject* self, PyObject* args) {
 }
 
 static PyObject* Repo_clean(RepoObject* self, PyObject* args) {
-       int r = pakfire_repo_clean(self->repo);
+       int r = pakfire_repo_clean(self->repo, 0);
 
        if (r) {
                PyErr_SetFromErrno(PyExc_OSError);
@@ -352,7 +352,7 @@ static PyObject* Repo_exit(RepoObject* self, PyObject* args) {
 
        // Automatically cleanup the repository
        if (self->clean) {
-               int r = pakfire_repo_clean(self->repo);
+               int r = pakfire_repo_clean(self->repo, 0);
 
                if (r) {
                        PyErr_SetFromErrno(PyExc_OSError);
index dfbcb9dc740adf20eb47665bbb0ce784c95b28d4..f286384ec698ac1b795f2dc9ffccdf3eeaa61fb6 100644 (file)
@@ -47,7 +47,7 @@ Pakfire pakfire_unref(Pakfire pakfire);
 
 const char* pakfire_get_path(Pakfire pakfire);
 
-int pakfire_clean(Pakfire pakfire);
+int pakfire_clean(Pakfire pakfire, int flags);
 
 int pakfire_bind(Pakfire pakfire, const char* src, const char* dst, int flags);
 
index 2020944ad3a0626549849d4c5ccf67297718de4b..3cd59424fe11b789584c266cffef61fe6991b0b7 100644 (file)
@@ -75,7 +75,7 @@ PakfirePackage pakfire_repo_add_archive(PakfireRepo repo, PakfireArchive archive
 
 // Cache
 
-int pakfire_repo_clean(PakfireRepo repo);
+int pakfire_repo_clean(PakfireRepo repo, int flags);
 
 // Scan
 
index 9f91b81014748e3d24d898764144f788d1702712..f6ffb8dbe6239f7a5bd890b7879e34eaece92faf 100644 (file)
@@ -1053,7 +1053,8 @@ PAKFIRE_EXPORT int pakfire_bind(Pakfire pakfire, const char* src, const char* ds
        return __mount(pakfire, src, mountpoint, NULL, flags|MS_BIND, NULL);
 }
 
-static int pakfire_foreach_repo(Pakfire pakfire, int (*func)(PakfireRepo repo)) {
+static int pakfire_foreach_repo(Pakfire pakfire,
+               int (*func)(PakfireRepo repo, int flags), int flags) {
        PakfireRepo repo;
 
        Repo* solv_repo;
@@ -1069,7 +1070,7 @@ static int pakfire_foreach_repo(Pakfire pakfire, int (*func)(PakfireRepo repo))
                        return 1;
 
                // Run callback
-               r = func(repo);
+               r = func(repo, flags);
                pakfire_repo_unref(repo);
 
                // Raise any errors
@@ -1080,8 +1081,8 @@ static int pakfire_foreach_repo(Pakfire pakfire, int (*func)(PakfireRepo repo))
        return 0;
 }
 
-PAKFIRE_EXPORT int pakfire_clean(Pakfire pakfire) {
-       return pakfire_foreach_repo(pakfire, pakfire_repo_clean);
+PAKFIRE_EXPORT int pakfire_clean(Pakfire pakfire, int flags) {
+       return pakfire_foreach_repo(pakfire, pakfire_repo_clean, flags);
 }
 
 static int pakfire_copy(Pakfire pakfire, const char* src, const char* dst) {
index ad3b8c50fcbb6db6b342aa1f030ff82bac08c49c..3ce328c3e7cc1872f099de32dc40a1efacc0c22a 100644 (file)
@@ -804,7 +804,7 @@ PAKFIRE_EXPORT PakfirePackage pakfire_repo_add_archive(PakfireRepo repo, Pakfire
        return pakfire_archive_make_package(archive, repo);
 }
 
-PAKFIRE_EXPORT int pakfire_repo_clean(PakfireRepo repo) {
+PAKFIRE_EXPORT int pakfire_repo_clean(PakfireRepo repo, int flags) {
        char cache_path[PATH_MAX];
 
        // Drop all meta-data from memory