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];
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