]> git.ipfire.org Git - pakfire.git/commitdiff
cli: pakfire-builder: build: Show the build log
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 29 Sep 2023 13:27:04 +0000 (13:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 29 Sep 2023 13:27:04 +0000 (13:27 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/cli/lib/build.c

index 4ddff0d71e5c7b104f2475244e4d5a9728dc5776..3287888655134e90ed44bb66662b63e086cc54a9 100644 (file)
 #include <errno.h>
 #include <getopt.h>
 #include <stdlib.h>
+#include <sys/syslog.h>
 
 #include "build.h"
+#include "color.h"
 #include "command.h"
 
 #include <pakfire/build.h>
@@ -116,6 +118,21 @@ static int parse_argv(struct config* config, int argc, char* argv[]) {
        return 0;
 }
 
+static int log_callback(struct pakfire* pakfire, void* data,
+               int priority, const char* message, size_t length) {
+       switch (priority) {
+               case LOG_ERR:
+                       fprintf(stderr, "%s%.*s%s", color_highlight(), (int)length, message, color_reset());
+                       break;
+
+               default:
+                       fprintf(stdout, "%.*s", (int)length, message);
+                       break;
+       }
+
+       return 0;
+}
+
 int cli_build(struct pakfire* pakfire, int argc, char* argv[]) {
        struct pakfire_build* build = NULL;
        struct config config = {
@@ -137,6 +154,9 @@ int cli_build(struct pakfire* pakfire, int argc, char* argv[]) {
                goto ERROR;
        }
 
+       // Set log callback
+       pakfire_build_set_log_callback(build, log_callback, NULL);
+
        // Set target
        if (config.target) {
                r = pakfire_build_set_target(build, config.target);