From 512e16a12b7478c52937acb46ad3c655a9ff32e3 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 2 Feb 2025 13:29:54 +0000 Subject: [PATCH] repo: Use our own JSON functions to build repository metadata Signed-off-by: Michael Tremer --- src/pakfire/repo.c | 63 ++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/src/pakfire/repo.c b/src/pakfire/repo.c index 58141da4..2aa6cdb2 100644 --- a/src/pakfire/repo.c +++ b/src/pakfire/repo.c @@ -2032,6 +2032,24 @@ ERROR: return r; } +static int pakfire_repo_make_metadata(struct pakfire_repo* self, struct json_object* md) { + int r; + + // Set the version + r = pakfire_json_add_int64(md, "version", 0); + if (r < 0) + return r; + + time_t revision = time(NULL); + + // Set revision + r = pakfire_json_add_int64(md, "revision", revision); + if (r < 0) + return r; + + return 0; +} + int pakfire_repo_write_metadata(struct pakfire_repo* self, struct pakfire_key* key) { struct json_object* repomd = NULL; char repomd_path[PATH_MAX]; @@ -2068,49 +2086,10 @@ int pakfire_repo_write_metadata(struct pakfire_repo* self, struct pakfire_key* k goto ERROR; } - // Set version - struct json_object* repomd_version = json_object_new_int64(0); - if (!repomd_version) { - ERROR(self->ctx, "Could not create version: %m\n"); - r = 1; - goto ERROR; - } - - r = json_object_object_add(repomd, "version", repomd_version); - if (r) { - ERROR(self->ctx, "Could not add version to repomd.json: %m\n"); - goto ERROR; - } - - time_t revision = time(NULL); - - // Set revision - struct json_object* repomd_revision = json_object_new_int64(revision); - if (!repomd_revision) { - ERROR(self->ctx, "Could not create revision: %m\n"); - r = 1; - goto ERROR; - } - - r = json_object_object_add(repomd, "revision", repomd_revision); - if (r) { - ERROR(self->ctx, "Could not add revision to repomd.json: %m\n"); - goto ERROR; - } - - // Set database - struct json_object* repomd_database = json_object_new_string(database); - if (!repomd_database) { - ERROR(self->ctx, "Could not create database string: %m\n"); - r = 1; - goto ERROR; - } - - r = json_object_object_add(repomd, "database", repomd_database); - if (r) { - ERROR(self->ctx, "Could not add database to repomd.json: %m\n"); + // Fill the metadata object + r = pakfire_repo_make_metadata(self, repomd); + if (r < 0) goto ERROR; - } // XXX database hash is missing -- 2.39.5