]> git.ipfire.org Git - pakfire.git/commitdiff
CLI: Add a convenience function to run the client
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 Jun 2025 08:25:53 +0000 (08:25 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 Jun 2025 08:25:53 +0000 (08:25 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/cli/lib/client-build.c
src/cli/lib/pakfire.c
src/cli/lib/pakfire.h
src/cli/lib/repo_create.c
src/cli/lib/upload_create.c
src/cli/lib/upload_delete.c
src/cli/lib/upload_list.c

index 6fff2cbec42a4547266a09b4a2e2a8f06ded9bff..36bcad181aa416362eb9b167a7a25470f82c6ed4 100644 (file)
@@ -165,33 +165,13 @@ static int ready_callback(struct pakfire_client* client, void* data) {
 int cli_client_build(void* data, int argc, char* argv[]) {
        struct cli_global_args* global_args = data;
        struct cli_local_args local_args = {};
-       struct pakfire_client* client = NULL;
        int r;
 
        // Parse the command line
        r = cli_parse(options, NULL, args_doc, doc, parse, 0, argc, argv, &local_args);
        if (r)
-               goto ERROR;
-
-       // Connect to the build service
-       r = cli_setup_client(&client, global_args);
-       if (r < 0)
-               goto ERROR;
-
-       // Set ready callback
-       pakfire_client_set_ready_callback(client, ready_callback, &local_args);
+               return r;
 
        // Run the client
-       r = pakfire_client_run(client);
-       if (r < 0)
-               goto ERROR;
-
-       // Return the status
-       r = local_args.status;
-
-ERROR:
-       if (client)
-               pakfire_client_unref(client);
-
-       return r;
+       return cli_run_client(global_args, ready_callback, &local_args);
 }
index c1da92fb5723bd77309e00cb23f23d1b22bc1245..7cbb6d814c238ac0959e161e01da5add3524c6b2 100644 (file)
@@ -205,3 +205,26 @@ ERROR:
 
        return r;
 }
+
+int cli_run_client(struct cli_global_args* args, pakfire_client_ready_callback callback, void* data) {
+       struct pakfire_client* client = NULL;
+       int r;
+
+       // Create a new client
+       r = cli_setup_client(&client, args);
+       if (r < 0)
+               goto ERROR;
+
+       // Set the ready callback
+       if (callback)
+               pakfire_client_set_ready_callback(client, callback, data);
+
+       // Run the client
+       r = pakfire_client_run(client);
+
+ERROR:
+       if (client)
+               pakfire_client_unref(client);
+
+       return r;
+}
index 1da58d692629c6de6ea65c107c38e88001910043..dd5dc1c3b67517ea52fef7f81fd9bbb1428765d7 100644 (file)
@@ -50,5 +50,6 @@ int cli_setup_config(struct pakfire_config** config, struct cli_global_args* arg
 int cli_setup_pakfire(struct pakfire** pakfire, struct cli_global_args* args);
 int cli_setup_build(struct pakfire_build** build, struct cli_global_args* args, int flags);
 int cli_setup_client(struct pakfire_client** client, struct cli_global_args* args);
+int cli_run_client(struct cli_global_args* args, pakfire_client_ready_callback callback, void* data);
 
 #endif /* PAKFIRE_CLI_PAKFIRE_H */
index cf91e295154ed9d3a450b870accbcddd06820d8f..55847f92efd1cc6e0a1c03ab2699e781a4d70421 100644 (file)
@@ -84,28 +84,13 @@ static int ready_callback(struct pakfire_client* client, void* data) {
 int cli_repo_create(void* data, int argc, char* argv[]) {
        struct cli_global_args* global_args = data;
        struct cli_local_args local_args = {};
-       struct pakfire_client* client = NULL;
        int r;
 
        // Parse the command line
        r = cli_parse(options, NULL, args_doc, doc, parse, 0, argc, argv, &local_args);
        if (r)
-               goto ERROR;
-
-       // Connect to the build service
-       r = cli_setup_client(&client, global_args);
-       if (r < 0)
-               goto ERROR;
-
-       // Set ready callback
-       pakfire_client_set_ready_callback(client, ready_callback, &local_args);
+               return r;
 
        // Run the client
-       r = pakfire_client_run(client);
-
-ERROR:
-       if (client)
-               pakfire_client_unref(client);
-
-       return r;
+       return cli_run_client(global_args, ready_callback, &local_args);
 }
index c31b26168299e3f00fb03c47d8bfb3a83ce6b59e..42f2f1965df10287b1ccf842c13da0e5cf8d646d 100644 (file)
@@ -86,28 +86,13 @@ static int ready_callback(struct pakfire_client* client, void* data) {
 int cli_upload_create(void* data, int argc, char* argv[]) {
        struct cli_global_args* global_args = data;
        struct cli_local_args local_args = {};
-       struct pakfire_client* client = NULL;
        int r;
 
        // Parse the command line
        r = cli_parse(NULL, NULL, args_doc, doc, parse, 0, argc, argv, &local_args);
        if (r)
-               goto ERROR;
-
-       // Connect to the build service
-       r = cli_setup_client(&client, global_args);
-       if (r < 0)
-               goto ERROR;
-
-       // Set ready callback
-       pakfire_client_set_ready_callback(client, ready_callback, &local_args);
+               return r;
 
        // Run the client
-       r = pakfire_client_run(client);
-
-ERROR:
-       if (client)
-               pakfire_client_unref(client);
-
-       return r;
+       return cli_run_client(global_args, ready_callback, &local_args);
 }
index 540786bda264546e6fe8c06779ab79ba2d1be8a2..79e65aeedf11eb61f63cd9e597087f933afc29ad 100644 (file)
@@ -77,28 +77,13 @@ static int ready_callback(struct pakfire_client* client, void* data) {
 int cli_upload_delete(void* data, int argc, char* argv[]) {
        struct cli_global_args* global_args = data;
        struct cli_local_args local_args = {};
-       struct pakfire_client* client = NULL;
        int r;
 
        // Parse the command line
        r = cli_parse(NULL, NULL, args_doc, doc, parse, 0, argc, argv, &local_args);
        if (r)
-               goto ERROR;
-
-       // Connect to the build service
-       r = cli_setup_client(&client, global_args);
-       if (r < 0)
-               goto ERROR;
-
-       // Set ready callback
-       pakfire_client_set_ready_callback(client, ready_callback, &local_args);
+               return r;
 
        // Run the client
-       r = pakfire_client_run(client);
-
-ERROR:
-       if (client)
-               pakfire_client_unref(client);
-
-       return r;
+       return cli_run_client(global_args, ready_callback, &local_args);
 }
index 3444601edf37802971bd7710de967a04a545aa28..caf8bbcb8ee3c58c1d1356461e066fb25f51f0b7 100644 (file)
@@ -41,28 +41,13 @@ static int ready_callback(struct pakfire_client* client, void* data) {
 
 int cli_upload_list(void* data, int argc, char* argv[]) {
        struct cli_global_args* global_args = data;
-       struct pakfire_client* client = NULL;
        int r;
 
        // Parse the command line
        r = cli_parse(NULL, NULL, NULL, doc, NULL, 0, argc, argv, NULL);
        if (r)
-               goto ERROR;
-
-       // Connect to the build service
-       r = cli_setup_client(&client, global_args);
-       if (r < 0)
-               goto ERROR;
-
-       // Set ready callback
-       pakfire_client_set_ready_callback(client, ready_callback, NULL);
+               return r;
 
        // Run the client
-       r = pakfire_client_run(client);
-
-ERROR:
-       if (client)
-               pakfire_client_unref(client);
-
-       return r;
+       return cli_run_client(global_args, ready_callback, NULL);
 }