]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
packager: Remove files after they have been packaged
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 19 Sep 2022 19:42:25 +0000 (19:42 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 19 Sep 2022 19:42:25 +0000 (19:42 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/build.c
src/libpakfire/filelist.c
src/libpakfire/include/pakfire/filelist.h
src/libpakfire/include/pakfire/packager.h
src/libpakfire/packager.c

index 1b026d4badf27f3bd3b0deb41a9703c632f31073..2f86fa02f232a25e774b4e31609e3da3f24a4877 100644 (file)
@@ -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;
 
index 31d6c2639f4f57961a4b036aa5bcb33099a3e9c5..aa34f4d73d124b2d1d1da3038847296180c7a700 100644 (file)
@@ -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;
+}
index 22460ad911cf12d8a2c0ab7a547ad490c58100b1..11ee505b41e495643a47f2973d9c40e2e52edfc9 100644 (file)
@@ -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 */
index 71c05f9288bff66202cd00dc3223ee91d943fe21..150a2c60cd599b1b20f862e5736bde99c3bf7174 100644 (file)
@@ -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 */
index db2be22b564d08af54e1910b15a3aedfee7868b6..00721fbc52bebc0de9b92b10085853e4b5695161 100644 (file)
@@ -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);
+}