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);
}
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;
+}
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 */
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);
}
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);
}
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);
}
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);
}