]> git.ipfire.org Git - pakfire.git/commitdiff
linter: Send results to the logger by default
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 26 Oct 2024 09:56:01 +0000 (09:56 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 26 Oct 2024 09:56:01 +0000 (09:56 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c
src/libpakfire/linter.c

index dc6321347c046e945a2b7ae6060e5c37ead3fc86..8fd1ea3ef557ae38b6bf646e6c244047fd00c5d2 100644 (file)
@@ -1835,7 +1835,8 @@ PAKFIRE_EXPORT int pakfire_archive_lint(struct pakfire_archive* archive,
                goto ERROR;
 
        // Set callback
-       pakfire_linter_set_result_callback(linter, callback, data);
+       if (callback)
+               pakfire_linter_set_result_callback(linter, callback, data);
 
        // Lint, lint, lint...
        r = pakfire_linter_lint(linter);
index 3be333f365f84eded9462ff7991238e8f2be7aa0..c260addc3dd37ab7b7271fb15a5d71958447cb1f 100644 (file)
@@ -69,6 +69,31 @@ struct pakfire_linter {
        void* result_data;
 };
 
+static int pakfire_linter_default_result_callback(struct pakfire_ctx* ctx,
+               struct pakfire_archive* archive, struct pakfire_package* package,
+               int priority, const char* result, void* data) {
+       const char* nevra = pakfire_package_get_string(package, PAKFIRE_PKG_NEVRA);
+
+       switch (priority) {
+               case PAKFIRE_LINTER_INFO:
+                       INFO(ctx, "%s: %s\n", nevra, result);
+                       break;
+
+               case PAKFIRE_LINTER_WARNING:
+                       INFO(ctx, "%s: %s\n", nevra, result);
+                       break;
+
+               case PAKFIRE_LINTER_ERROR:
+                       ERROR(ctx, "%s: %s\n", nevra, result);
+                       break;
+
+               default:
+                       return -ENOTSUP;
+       }
+
+       return 0;
+}
+
 static void pakfire_linter_result_free(struct pakfire_linter_result* result) {
        if (result->comment)
                free(result->comment);
@@ -107,10 +132,6 @@ int pakfire_linter_result(struct pakfire_linter* linter, int priority,
        // Store the result
        TAILQ_INSERT_TAIL(&linter->results, result, nodes);
 
-       // Log the result
-       DEBUG(linter->ctx, "%s: %s",
-               pakfire_archive_get_path(linter->archive), result->comment);
-
        // Call the callback
        if (linter->result_callback) {
                r = linter->result_callback(linter->ctx, linter->archive, linter->pkg,
@@ -146,6 +167,9 @@ int pakfire_linter_create(struct pakfire_linter** linter,
        // Initialize results
        TAILQ_INIT(&l->results);
 
+       // Set the default callback
+       pakfire_linter_set_result_callback(l, pakfire_linter_default_result_callback, NULL);
+
        // Store the archive
        l->archive = pakfire_archive_ref(archive);