From: Michael Tremer Date: Tue, 24 Jun 2025 15:34:04 +0000 (+0000) Subject: cli: Return auth result in exit code X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=27a926dd86c3d599a27ca6ffd5cfe941f07ab231;p=pakfire.git cli: Return auth result in exit code Signed-off-by: Michael Tremer --- diff --git a/src/cli/lib/auth.c b/src/cli/lib/auth.c index f30d1195..f245a43a 100644 --- a/src/cli/lib/auth.c +++ b/src/cli/lib/auth.c @@ -55,10 +55,21 @@ static error_t parse(int key, char* arg, struct argp_state* state, void* data) { return 0; } +static int auth_callback(struct pakfire_client* client, + pakfire_client_auth_status status, void* data) { + int* r = data; + + // Set the status + *r = status; + + return 0; +} + int cli_auth(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 status = 0; int r; // Parse the command line @@ -71,6 +82,11 @@ int cli_auth(void* data, int argc, char* argv[]) { if (r < 0) goto ERROR; + // Set the authentication callback + r = pakfire_client_set_auth_callback(client, auth_callback, &status); + if (r < 0) + goto ERROR; + // Authenticate r = pakfire_client_auth_user(client, local_args.username, local_args.password); if (r < 0) @@ -78,6 +94,11 @@ int cli_auth(void* data, int argc, char* argv[]) { // Run the client r = pakfire_client_run(client); + if (r < 0) + goto ERROR; + + // Set status + r = status; ERROR: if (client)