]> git.ipfire.org Git - pakfire.git/commitdiff
repo: Use our own JSON functions to build repository metadata
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 2 Feb 2025 13:29:54 +0000 (13:29 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 2 Feb 2025 13:29:54 +0000 (13:29 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/repo.c

index 58141da4a9917a34a49bc3ac129a9f45d70baa2f..2aa6cdb222ea08ae6b18a22afa2f458cea5471ba 100644 (file)
@@ -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