From: Michael Tremer Date: Tue, 20 Sep 2022 09:56:30 +0000 (+0000) Subject: filelist: Add dump function to dump an entire filelist X-Git-Tag: 0.9.28~293 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9cfb8bb8523d1248f4f38dc20493f5cb116eb6e1;p=pakfire.git filelist: Add dump function to dump an entire filelist Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/filelist.c b/src/libpakfire/filelist.c index c894ad3ef..97acff18c 100644 --- a/src/libpakfire/filelist.c +++ b/src/libpakfire/filelist.c @@ -397,6 +397,33 @@ int pakfire_filelist_walk(struct pakfire_filelist* list, return r; } +static int __pakfire_filelist_dump( + struct pakfire* pakfire, struct pakfire_file* file, void* p) { + const int debug = *(int*)p; + + char* s = pakfire_file_dump(file); + if (s) { + if (debug) + DEBUG(pakfire, "%s\n", s); + else + INFO(pakfire, "%s\n", s); + + free(s); + } + + return 0; +} + +int pakfire_filelist_dump(struct pakfire_filelist* list, int debug) { +#ifndef ENABLE_DEBUG + // Avoid walking through the entire filelist in non-debug mode + if (debug) + return 0; +#endif + + return pakfire_filelist_walk(list, __pakfire_filelist_dump, &debug); +} + /* Verifies all files on the filelist */ diff --git a/src/libpakfire/include/pakfire/filelist.h b/src/libpakfire/include/pakfire/filelist.h index 11ee505b4..519ce82fc 100644 --- a/src/libpakfire/include/pakfire/filelist.h +++ b/src/libpakfire/include/pakfire/filelist.h @@ -56,6 +56,7 @@ typedef int (*pakfire_filelist_walk_callback) int pakfire_filelist_walk(struct pakfire_filelist* list, pakfire_filelist_walk_callback callback, void* data); +int pakfire_filelist_dump(struct pakfire_filelist* list, int debug); int pakfire_filelist_verify(struct pakfire_filelist* list, struct pakfire_filelist* errors); diff --git a/src/libpakfire/packager.c b/src/libpakfire/packager.c index 3bfef56ec..434074ed0 100644 --- a/src/libpakfire/packager.c +++ b/src/libpakfire/packager.c @@ -345,6 +345,15 @@ int pakfire_packager_finish(struct pakfire_packager* packager, FILE* f) { if (pakfire_package_has_rich_deps(packager->pkg)) pakfire_package_add_requires(packager->pkg, "pakfire(RichDependencies)"); +#ifdef ENABLE_DEBUG + DEBUG(packager->pakfire, "Filelist:\n"); + + // Dump filelist + r = pakfire_filelist_dump(packager->filelist, 1); + if (r) + goto ERROR; +#endif + // Add filelist r = pakfire_package_set_filelist(packager->pkg, packager->filelist); if (r)