]> git.ipfire.org Git - pakfire.git/commitdiff
buildservice: Export upload UUID
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Oct 2023 10:39:42 +0000 (10:39 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Oct 2023 10:39:42 +0000 (10:39 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/cli/lib/upload_create.c
src/libpakfire/buildservice.c
src/libpakfire/include/pakfire/buildservice.h

index f22c7ad0c01eca011d71d7602479909488d7f600..e578df85cd589c82b92b94cd52275a6b0a44c606 100644 (file)
@@ -58,6 +58,7 @@ static error_t parse(int key, char* arg, struct argp_state* state, void* data) {
 int cli_upload_create(void* data, int argc, char* argv[]) {
        struct pakfire_buildservice* service = NULL;
        struct config config = {};
+       char* uuid = NULL;
        int r;
 
        struct pakfire_ctx* ctx = data;
@@ -74,9 +75,14 @@ int cli_upload_create(void* data, int argc, char* argv[]) {
 
        // List uploads
        for (unsigned int i = 0; i < config.num_files; i++) {
-               r = pakfire_buildservice_upload(service, config.files[i], NULL);
+               r = pakfire_buildservice_upload(service, config.files[i], NULL, &uuid);
                if (r)
                        goto ERROR;
+
+               if (uuid) {
+                       printf("Uploaded %s as %s\n", config.files[i], uuid);
+                       free(uuid);
+               }
        }
 
 ERROR:
index 859f3da70667604cad34db38e1cfc1ef4aa38e62..42cace9120f09717018cd284ab13dabbe8db17d1 100644 (file)
@@ -476,9 +476,8 @@ ERROR:
 }
 
 PAKFIRE_EXPORT int pakfire_buildservice_upload(struct pakfire_buildservice* service,
-               const char* path, const char* filename) {
+               const char* path, const char* filename, char** uuid) {
        char basename[NAME_MAX];
-       char* uuid = NULL;
        FILE* f = NULL;
        int r;
 
@@ -499,20 +498,24 @@ PAKFIRE_EXPORT int pakfire_buildservice_upload(struct pakfire_buildservice* serv
        }
 
        // Create a new upload
-       r = pakfire_buildservice_create_upload(service, path, filename, f, &uuid);
+       r = pakfire_buildservice_create_upload(service, path, filename, f, uuid);
        if (r)
                goto ERROR;
 
-       CTX_DEBUG(service->ctx, "Created a new download (%s)\n", uuid);
+       CTX_DEBUG(service->ctx, "Created a new download (%s)\n", *uuid);
 
        // Send the payload
-       r = pakfire_buildservice_upload_payload(service, filename, uuid, f);
+       r = pakfire_buildservice_upload_payload(service, filename, *uuid, f);
        if (r)
                goto ERROR;
 
 ERROR:
-       if (uuid)
-               free(uuid);
+       if (r) {
+               if (*uuid)
+                       free(*uuid);
+
+               *uuid = NULL;
+       }
        if (f)
                fclose(f);
 
index 4b70d10d220e17fcc5a0993e8bc05386e8ae90dd..17b3c8a3b209fc6487de39be151d6c5331e23f29 100644 (file)
@@ -35,7 +35,7 @@ struct pakfire_buildservice* pakfire_buildservice_unref(struct pakfire_buildserv
 // Uploads
 
 int pakfire_buildservice_upload(struct pakfire_buildservice* service,
-       const char* path, const char* filename);
+       const char* path, const char* filename, char** uuid);
 int pakfire_buildservice_list_uploads(
        struct pakfire_buildservice* service, struct json_object** uploads);
 int pakfire_buildservice_delete_upload(