From: Michael Tremer Date: Thu, 22 Apr 2021 10:57:09 +0000 (+0000) Subject: pakfire: Export pakfire_make_cache_path to Python X-Git-Tag: 0.9.28~1285^2~277 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=510a90f4f1763fa4a2e1843f2442f5a9e6ec9b81;p=pakfire.git pakfire: Export pakfire_make_cache_path to Python Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/pakfire.c b/src/_pakfire/pakfire.c index fb2aa491e..3f95ed0a2 100644 --- a/src/_pakfire/pakfire.c +++ b/src/_pakfire/pakfire.c @@ -804,6 +804,23 @@ ERROR: return list; } +static PyObject* Pakfire_make_cache_path(PakfireObject* self, PyObject* args) { + const char* path = NULL; + + if (!PyArg_ParseTuple(args, "s", &path)) + return NULL; + + char cache_path[PATH_MAX]; + + int r = pakfire_make_cache_path(self->pakfire, cache_path, "%s", path); + if (r) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + + return PyUnicode_FromString(cache_path); +} + static struct PyMethodDef Pakfire_methods[] = { { "bind", @@ -871,6 +888,12 @@ static struct PyMethodDef Pakfire_methods[] = { METH_VARARGS, NULL }, + { + "make_cache_path", + (PyCFunction)Pakfire_make_cache_path, + METH_VARARGS, + NULL + }, { "read_makefile", (PyCFunction)Pakfire_read_makefile, diff --git a/src/libpakfire/include/pakfire/pakfire.h b/src/libpakfire/include/pakfire/pakfire.h index 7e4f915ea..29d2609be 100644 --- a/src/libpakfire/include/pakfire/pakfire.h +++ b/src/libpakfire/include/pakfire/pakfire.h @@ -37,6 +37,12 @@ Pakfire pakfire_unref(Pakfire pakfire); const char* pakfire_get_path(Pakfire pakfire); +#define pakfire_make_cache_path(pakfire, path, format, ...) \ + __pakfire_make_cache_path(pakfire, path, sizeof(path) - 1, format, __VA_ARGS__) + +int __pakfire_make_cache_path(Pakfire pakfire, char* path, size_t length, + const char* format, ...) __attribute__((format(printf, 4, 5))); + int pakfire_bind(Pakfire pakfire, const char* src, const char* dst, int flags); int pakfire_copy_in(Pakfire pakfire, const char* src, const char* dst); @@ -87,12 +93,6 @@ int pakfire_read_makefile(PakfireParser* parser, Pakfire pakfire, const char* pa __pakfire_make_path(pakfire, dst, sizeof(dst) - 1, path) int __pakfire_make_path(Pakfire pakfire, char* dst, size_t length, const char* path); -#define pakfire_make_cache_path(pakfire, path, format, ...) \ - __pakfire_make_cache_path(pakfire, path, sizeof(path) - 1, format, __VA_ARGS__) - -int __pakfire_make_cache_path(Pakfire pakfire, char* path, size_t length, - const char* format, ...) __attribute__((format(printf, 4, 5))); - void pakfire_pool_has_changed(Pakfire pakfire); void pakfire_pool_apply_changes(Pakfire pakfire); diff --git a/src/libpakfire/libpakfire.sym b/src/libpakfire/libpakfire.sym index 32aaba38a..3fd0fb6f9 100644 --- a/src/libpakfire/libpakfire.sym +++ b/src/libpakfire/libpakfire.sym @@ -46,6 +46,7 @@ global: pakfire_unref; pakfire_version_compare; pakfire_whatprovides; + __pakfire_make_cache_path; # arch pakfire_arch_is_compatible; diff --git a/src/libpakfire/pakfire.c b/src/libpakfire/pakfire.c index 8109cb833..fa1396155 100644 --- a/src/libpakfire/pakfire.c +++ b/src/libpakfire/pakfire.c @@ -1145,7 +1145,7 @@ PAKFIRE_EXPORT PakfirePackageList pakfire_search(Pakfire pakfire, const char* wh // Cache -int __pakfire_make_cache_path(Pakfire pakfire, char* path, size_t length, +PAKFIRE_EXPORT int __pakfire_make_cache_path(Pakfire pakfire, char* path, size_t length, const char* format, ...) { va_list args;