static int pakfire_build_send_filelist(struct pakfire* pakfire, void* data, int fd) {
const struct pakfire_find_deps_ctx* ctx = (struct pakfire_find_deps_ctx*)data;
- return pakfire_filelist_walk(ctx->filelist, pakfire_build_send_file, &fd);
+ return pakfire_filelist_walk(ctx->filelist, NULL,
+ pakfire_build_send_file, &fd);
}
static int pakfire_build_process_deps(struct pakfire* pakfire,
if (length) {
ERROR(build->pakfire, "Unpackaged files found:\n");
- r = pakfire_filelist_walk(filelist, __pakfire_build_unpackaged_file, NULL);
+ r = pakfire_filelist_walk(filelist, NULL,
+ __pakfire_build_unpackaged_file, NULL);
if (r)
goto ERROR;
}
// Walk through the entire filelist
- r = pakfire_filelist_walk(filelist, __pakfire_compress, &data);
+ r = pakfire_filelist_walk(filelist, NULL, __pakfire_compress, &data);
if (r)
goto ERROR;
}
int pakfire_filelist_walk(struct pakfire_filelist* list,
- pakfire_filelist_walk_callback callback, void* data) {
+ const char* pattern, pakfire_filelist_walk_callback callback, void* data) {
struct pakfire_file* file = NULL;
int r = 0;
for (unsigned int i = 0; i < list->size; i++) {
file = list->elements[i];
+ // Skip any files that don't match the pattern
+ if (pattern && !pakfire_file_matches(file, pattern))
+ continue;
+
// Call the callback
r = callback(list->pakfire, file, data);
if (r)
return 0;
#endif
- return pakfire_filelist_walk(list, __pakfire_filelist_dump, &debug);
+ return pakfire_filelist_walk(list, NULL, __pakfire_filelist_dump, &debug);
}
/*
(struct pakfire* pakfire, struct pakfire_file* file, void* data);
int pakfire_filelist_walk(struct pakfire_filelist* list,
- pakfire_filelist_walk_callback callback, void* data);
+ const char* pattern, 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);
PAKFIRE_EXPORT int pakfire_package_set_filelist(
struct pakfire_package* pkg, struct pakfire_filelist* filelist) {
- return pakfire_filelist_walk(filelist, __pakfire_package_set_filelist, pkg);
+ return pakfire_filelist_walk(filelist, NULL, __pakfire_package_set_filelist, pkg);
}
int pakfire_package_set_filelist_from_string(struct pakfire_package* pkg, const char* files) {
}
// Walk through the filelist
- r = pakfire_filelist_walk(filelist, __pakfire_package_add_json_filelist, object);
+ r = pakfire_filelist_walk(filelist, NULL, __pakfire_package_add_json_filelist, object);
if (r)
goto ERROR;
int pakfire_packager_add_files(
struct pakfire_packager* packager, struct pakfire_filelist* filelist) {
// Add all files on the filelist
- return pakfire_filelist_walk(filelist, __pakfire_packager_add_files, packager);
+ return pakfire_filelist_walk(filelist, NULL, __pakfire_packager_add_files, packager);
}
int pakfire_packager_add_scriptlet(struct pakfire_packager* packager,