]> git.ipfire.org Git - pakfire.git/commitdiff
buildservice: Simplify how it is being initialized
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 28 Jan 2025 15:23:44 +0000 (15:23 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 28 Jan 2025 15:23:44 +0000 (15:23 +0000)
This make this all more re-usable in other places.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12 files changed:
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/repo_delete.c
src/cli/lib/repo_list.c
src/cli/lib/repo_show.c
src/cli/lib/upload_create.c
src/cli/lib/upload_delete.c
src/cli/lib/upload_list.c
src/pakfire/buildservice.c
src/pakfire/buildservice.h

index e6e982172d7f19e0a6dfaacdd86030d87ee9d028..d56d1fc15a89da35629fb601c7cde580957838b1 100644 (file)
@@ -110,8 +110,8 @@ int cli_client_build(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // Upload all packages
index 2764cac60bd6ad44637fb4d46f1f34d9a747cc5b..19e66d41e68359c023312ba9ae6e5502241a996c 100644 (file)
@@ -22,6 +22,7 @@
 #include <limits.h>
 
 #include <pakfire/build.h>
+#include <pakfire/buildservice.h>
 #include <pakfire/config.h>
 #include <pakfire/pakfire.h>
 #include <pakfire/repo.h>
@@ -138,3 +139,30 @@ ERROR:
 
        return r;
 }
+
+int cli_setup_buildservice(struct pakfire_buildservice** service, struct cli_global_args* args) {
+       struct pakfire_config* config = NULL;
+       const char* url = NULL;
+       int r;
+
+       // Setup the configuration
+       r = cli_setup_config(&config, args);
+       if (r < 0)
+               goto ERROR;
+
+       // Fetch the URL
+       url = pakfire_config_get(config, "client", "url", "https://pakfire.ipfire.org/");
+
+       // Connect to the build service
+       r = pakfire_buildservice_create(service, args->ctx, url);
+       if (r < 0) {
+               fprintf(stderr, "Could not setup the build service: %s\n", strerror(-r));
+               goto ERROR;
+       }
+
+ERROR:
+       if (config)
+               pakfire_config_unref(config);
+
+       return r;
+}
index 47fef8ce328201827ea7b1cafd1669e852ce07b0..4dc2cc0dd0c8a42a145165e5b6eca57bc1a414c8 100644 (file)
@@ -22,6 +22,7 @@
 #define PAKFIRE_CLI_PAKFIRE_H
 
 #include <pakfire/build.h>
+#include <pakfire/buildservice.h>
 #include <pakfire/config.h>
 #include <pakfire/ctx.h>
 #include <pakfire/pakfire.h>
@@ -48,5 +49,6 @@ struct cli_global_args {
 int cli_setup_config(struct pakfire_config** config, struct cli_global_args* args);
 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_buildservice(struct pakfire_buildservice** service, struct cli_global_args* args);
 
 #endif /* PAKFIRE_CLI_PAKFIRE_H */
index ba270f5798c64bcee9a2f25771f94d0e706a0444..c1e46cbca4a1b89127695b5911dcaa2547ec2b56 100644 (file)
@@ -86,8 +86,8 @@ int cli_repo_create(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // List repos
index 3ad30425e47e725fb26c1437c0dde334dd8d38d1..c5eda6ccf6b2f1b529fe33bfa4a3a0db3e4dc284 100644 (file)
@@ -73,8 +73,8 @@ int cli_repo_delete(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // Delete the repository
index f3b40e63541bbb4cae38985504077f5fff5944f6..8f7500421bc6a12a3ebf2f5caff784ac2a71fadf 100644 (file)
@@ -65,8 +65,8 @@ int cli_repo_list(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // List repos
index e7794db382155a859b665c0049de3649829ba957..c92a543ce2ba6cc368882d0eed48a873f07a9de2 100644 (file)
@@ -71,8 +71,8 @@ int cli_repo_show(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // List repos
index 04a7cef5456a1eedeb33bb4574b6a56f3033ba87..4df2360d88315d9954190a3324516a4d1d360916 100644 (file)
@@ -68,8 +68,8 @@ int cli_upload_create(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // List uploads
index b019ff2ce56b422d08d17641a64bfecb3760fc3d..5101729a3e49d24684a2f622d16f1e74a517e78a 100644 (file)
@@ -72,8 +72,8 @@ int cli_upload_delete(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // Delete uploads
index 4ca7a7cedad248387897a43563bf8a7d47f8343e..ccebc9dd9531a07a75087e6c17fb299512324591 100644 (file)
@@ -41,8 +41,8 @@ int cli_upload_list(void* data, int argc, char* argv[]) {
                goto ERROR;
 
        // Connect to the build service
-       r = pakfire_buildservice_create(&service, global_args->ctx);
-       if (r)
+       r = cli_setup_buildservice(&service, global_args);
+       if (r < 0)
                goto ERROR;
 
        // List uploads
index 3729699cc2eee2d0fa321e4a8b90e2634940b577..be53e78e146bef3a5274508c6895aae574de77d7 100644 (file)
@@ -103,52 +103,6 @@ ERROR:
        return r;
 }
 
-static int pakfire_buildservice_setup(struct pakfire_buildservice* service) {
-       struct pakfire_config* config = NULL;
-       const char* url = NULL;
-       const char* keytab = NULL;
-       int r;
-
-       // Fetch the configuration
-       config = pakfire_ctx_get_config(service->ctx);
-       if (!config) {
-               r = 1;
-               goto ERROR;
-       }
-
-       // Fetch the URL
-       url = pakfire_config_get(config, "client", "url", NULL);
-       if (!url) {
-               ERROR(service->ctx, "Build Service URL is not configured\n");
-               r = 1;
-               goto ERROR;
-       }
-
-       // Store the URL
-       r = pakfire_string_set(service->url, url);
-       if (r < 0)
-               goto ERROR;
-
-       // Fetch the keytab
-       keytab = pakfire_config_get(config, "client", "keytab", DEFAULT_KEYTAB);
-
-       // Store the keytab
-       r = pakfire_string_set(service->keytab, keytab);
-       if (r)
-               goto ERROR;
-
-       // Setup authentication
-       r = pakfire_buildservice_setup_auth(service);
-       if (r)
-               goto ERROR;
-
-ERROR:
-       if (config)
-               pakfire_config_unref(config);
-
-       return r;
-}
-
 static void pakfire_buildservice_free(struct pakfire_buildservice* service) {
        if (service->krb5_ctx)
                krb5_free_context(service->krb5_ctx);
@@ -159,7 +113,7 @@ static void pakfire_buildservice_free(struct pakfire_buildservice* service) {
 }
 
 int pakfire_buildservice_create(
-               struct pakfire_buildservice** service, struct pakfire_ctx* ctx) {
+               struct pakfire_buildservice** service, struct pakfire_ctx* ctx, const char* url) {
        struct pakfire_buildservice* s = NULL;
        int r;
 
@@ -174,13 +128,13 @@ int pakfire_buildservice_create(
        // Initialize the reference counter
        s->nrefs = 1;
 
-       // Setup everything
-       r = pakfire_buildservice_setup(s);
-       if (r)
+       // Store the URL
+       r = pakfire_string_set(s->url, url);
+       if (r < 0)
                goto ERROR;
 
-       DEBUG(s->ctx,
-               "Pakfire Build Service initialized for %s\n", pakfire_buildservice_get_url(s));
+       DEBUG(s->ctx, "Pakfire Build Service initialized for %s\n",
+               pakfire_buildservice_get_url(s));
 
        // Return the pointer
        *service = s;
index 9b71863d7c7f7d032666a80157acd625efaed02d..06fe4c770085d752af9b30f3f29404af58a1ad63 100644 (file)
@@ -28,7 +28,7 @@ struct pakfire_buildservice;
 #include <pakfire/ctx.h>
 
 int pakfire_buildservice_create(struct pakfire_buildservice** service,
-       struct pakfire_ctx* ctx);
+       struct pakfire_ctx* ctx, const char* url);
 
 struct pakfire_buildservice* pakfire_buildservice_ref(struct pakfire_buildservice* service);
 struct pakfire_buildservice* pakfire_buildservice_unref(struct pakfire_buildservice* service);