index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Dan McGee <dan@archlinux.org> | 2012-03-16 12:08:10 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-03-16 12:08:10 -0500 |
commit | e6f72c61a098b52ea29e54b8eb4739a2ff81e6b0 (patch) | |
tree | f04692879dc63fe9f958500ebd646eb169d32fe4 /src | |
parent | 573bd80f147ce90f21ef51fb8ca6f71e89cc3a74 (diff) | |
parent | f988aa6b32503f5d4003b1402089df74adf8b485 (diff) |
-rw-r--r-- | src/pacman/sync.c | 17 |
diff --git a/src/pacman/sync.c b/src/pacman/sync.c index e69ca587..d782a94d 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -26,6 +26,7 @@ #include <errno.h> #include <dirent.h> #include <sys/stat.h> +#include <fnmatch.h> #include <alpm.h> #include <alpm_list.h> @@ -222,6 +223,22 @@ static int sync_cleancache(int level) if(strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) { 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; + } + /* build the full filepath */ snprintf(path, PATH_MAX, "%s%s", cachedir, ent->d_name); |