From: Michael Tremer Date: Fri, 27 Oct 2023 16:22:08 +0000 (+0000) Subject: buildservice: Export the URL X-Git-Tag: 0.9.30~1388 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04cc2479e4b62fa85b4061390dd2d368236917ae;p=pakfire.git buildservice: Export the URL Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/buildservice.c b/src/_pakfire/buildservice.c index 8357a7b5e..2db33330b 100644 --- a/src/_pakfire/buildservice.c +++ b/src/_pakfire/buildservice.c @@ -56,6 +56,19 @@ static void BuildService_dealloc(BuildServiceObject* self) { Py_TYPE(self)->tp_free((PyObject *)self); } +static PyObject* BuildService_get_url(BuildServiceObject* self) { + const char* url = NULL; + + // Fetch the URL + url = pakfire_buildservice_get_url(self->service); + if (!url) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + + return PyUnicode_FromString(url); +} + static PyObject* BuildService_upload(BuildServiceObject* self, PyObject* args, PyObject* kwds) { const char* kwlist[] = { "path", "filename", NULL }; const char* filename = NULL; @@ -99,6 +112,17 @@ static struct PyMethodDef BuildService_methods[] = { { NULL }, }; +static struct PyGetSetDef BuildService_getsetters[] = { + { + "url", + (getter)BuildService_get_url, + NULL, + NULL, + NULL + }, + { NULL }, +}; + PyTypeObject BuildServiceType = { PyVarObject_HEAD_INIT(NULL, 0) tp_name: "_pakfire.BuildService", @@ -109,4 +133,5 @@ PyTypeObject BuildServiceType = { tp_init: (initproc)BuildService_init, tp_doc: "BuildService Object", tp_methods: BuildService_methods, + tp_getset: BuildService_getsetters, }; diff --git a/src/libpakfire/buildservice.c b/src/libpakfire/buildservice.c index dd731b854..88cc31ce2 100644 --- a/src/libpakfire/buildservice.c +++ b/src/libpakfire/buildservice.c @@ -184,6 +184,10 @@ PAKFIRE_EXPORT struct pakfire_buildservice* pakfire_buildservice_unref( return NULL; } +PAKFIRE_EXPORT const char* pakfire_buildservice_get_url(struct pakfire_buildservice* service) { + return service->url; +} + static int pakfire_buildservice_create_xfer(struct pakfire_xfer** xfer, struct pakfire_buildservice* service, const char* url) { struct pakfire_xfer* t = NULL; diff --git a/src/libpakfire/include/pakfire/buildservice.h b/src/libpakfire/include/pakfire/buildservice.h index 6fd6746d0..b711c0324 100644 --- a/src/libpakfire/include/pakfire/buildservice.h +++ b/src/libpakfire/include/pakfire/buildservice.h @@ -32,6 +32,8 @@ int pakfire_buildservice_create(struct pakfire_buildservice** service, struct pa struct pakfire_buildservice* pakfire_buildservice_ref(struct pakfire_buildservice* service); struct pakfire_buildservice* pakfire_buildservice_unref(struct pakfire_buildservice* service); +const char* pakfire_buildservice_get_url(struct pakfire_buildservice* service); + // Builds typedef enum pakfire_buildservice_build_flags { diff --git a/src/libpakfire/libpakfire.sym b/src/libpakfire/libpakfire.sym index 3ecb40c34..872d1a9e0 100644 --- a/src/libpakfire/libpakfire.sym +++ b/src/libpakfire/libpakfire.sym @@ -93,6 +93,7 @@ global: pakfire_buildservice_get_repo; pakfire_buildservice_create_repo; pakfire_buildservice_delete_repo; + pakfire_buildservice_get_url; # dependencies pakfire_static_version_compare;