From: Michael Tremer Date: Mon, 19 Sep 2022 19:42:25 +0000 (+0000) Subject: packager: Remove files after they have been packaged X-Git-Tag: 0.9.28~297 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a838122d67a3ce38c30755b640ffe1a339d43fa;p=pakfire.git packager: Remove files after they have been packaged Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/build.c b/src/libpakfire/build.c index 1b026d4ba..2f86fa02f 100644 --- a/src/libpakfire/build.c +++ b/src/libpakfire/build.c @@ -586,6 +586,11 @@ static int pakfire_build_package(struct pakfire_build* build, struct pakfire_par } #endif + // Cleanup all packaged files + r = pakfire_packager_cleanup(packager); + if (r) + goto ERROR; + // Success r = 0; diff --git a/src/libpakfire/filelist.c b/src/libpakfire/filelist.c index 31d6c2639..aa34f4d73 100644 --- a/src/libpakfire/filelist.c +++ b/src/libpakfire/filelist.c @@ -472,3 +472,16 @@ ERROR: return r; } + +int pakfire_filelist_cleanup(struct pakfire_filelist* list) { + int r; + + // Walk through the list backwards + for (unsigned int i = list->size; i > 0; i--) { + r = pakfire_file_cleanup(list->elements[i]); + if (r) + return r; + } + + return 0; +} diff --git a/src/libpakfire/include/pakfire/filelist.h b/src/libpakfire/include/pakfire/filelist.h index 22460ad91..11ee505b4 100644 --- a/src/libpakfire/include/pakfire/filelist.h +++ b/src/libpakfire/include/pakfire/filelist.h @@ -59,6 +59,8 @@ int pakfire_filelist_walk(struct pakfire_filelist* list, int pakfire_filelist_verify(struct pakfire_filelist* list, struct pakfire_filelist* errors); +int pakfire_filelist_cleanup(struct pakfire_filelist* list); + #endif #endif /* PAKFIRE_FILELIST_H */ diff --git a/src/libpakfire/include/pakfire/packager.h b/src/libpakfire/include/pakfire/packager.h index 71c05f928..150a2c60c 100644 --- a/src/libpakfire/include/pakfire/packager.h +++ b/src/libpakfire/include/pakfire/packager.h @@ -55,6 +55,8 @@ int pakfire_packager_add(struct pakfire_packager* packager, int pakfire_packager_add_scriptlet(struct pakfire_packager* packager, struct pakfire_scriptlet* scriptlet); +int pakfire_packager_cleanup(struct pakfire_packager* packager); + #endif #endif /* PAKFIRE_PACKAGER_H */ diff --git a/src/libpakfire/packager.c b/src/libpakfire/packager.c index db2be22b5..00721fbc5 100644 --- a/src/libpakfire/packager.c +++ b/src/libpakfire/packager.c @@ -638,3 +638,11 @@ int pakfire_packager_add_scriptlet(struct pakfire_packager* packager, return 0; } + +/* + Removes all files on the filelist +*/ +int pakfire_packager_cleanup(struct pakfire_packager* packager) { + // Delete all files on the filelist + return pakfire_filelist_cleanup(packager->filelist); +}