From f619bc61f562d0dd08c502787347b31601f89be8 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Thu, 12 Jul 2012 14:00:44 -0500 Subject: Clean up exclusion list in sync cache cleanup Make an array out of our various glob skip patterns and loop through them looking for items to skip. Additionally, when doing a full clean, delete all objects rather than respect this skip list. Signed-off-by: Dan McGee --- src/pacman/sync.c | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/src/pacman/sync.c b/src/pacman/sync.c index 0b9e790f..713d0864 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -224,29 +224,30 @@ static int sync_cleancache(int level) continue; } - /* skip signature files - they are removed with their package file */ - if(fnmatch("*.sig", ent->d_name, 0) == 0) { - continue; - } - - /* skip package database within the cache directory */ - if(fnmatch("*.db*", ent->d_name, 0) == 0) { - continue; - } - - /* skip source packages within the cache directory */ - if(fnmatch("*.src.tar*", ent->d_name, 0) == 0) { - continue; - } - - /* skip package deltas, we aren't smart enough to clean these yet */ - if(fnmatch("*.delta", ent->d_name, 0) == 0) { - continue; - } - - /* skip any partial downloads */ - if(fnmatch("*.part", ent->d_name, 0) == 0) { - continue; + if (level <= 1) { + static const char * const glob_skips[] = { + /* skip signature files - they are removed with their package file */ + "*.sig", + /* skip package database within the cache directory */ + "*.db*", + /* skip source packages within the cache directory */ + "*.src.tar.*", + /* skip package deltas, we aren't smart enough to clean these yet */ + "*.delta", + /* skip any partial downloads */ + "*.part" + }; + size_t j; + + for(j = 0; j < sizeof(glob_skips) / sizeof(glob_skips[0]); j++) { + if(fnmatch(glob_skips[j], ent->d_name, 0) == 0) { + delete = 0; + break; + } + } + if(delete == 0) { + continue; + } } /* build the full filepath */ -- cgit v1.2.3-70-g09d2