From: Michael Tremer Date: Sun, 13 Feb 2011 17:01:02 +0000 (+0100) Subject: Add support for exclude files. X-Git-Tag: 0.9.3~170 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=715a78e9719bf0595565e0e980f988a9d2b36298;p=pakfire.git Add support for exclude files. --- diff --git a/pakfire/packages/packager.py b/pakfire/packages/packager.py index 8c4229f7e..352ccac60 100644 --- a/pakfire/packages/packager.py +++ b/pakfire/packages/packager.py @@ -238,8 +238,20 @@ class Packager(object): def create_tarball(self): tar = InnerTarFile(self.archive_files["data.img"], mode="w", env=self.env) - files = [] + includes = [] + excludes = [] + for pattern in self.pkg.file_patterns: + # Check if we are running in include or exclude mode. + if pattern.startswith("!"): + files = excludes + + # Strip the ! charater + pattern = pattern[1:] + + else: + files = includes + if pattern.startswith("/"): pattern = pattern[1:] pattern = self.env.chrootPath(self.env.buildroot, pattern) @@ -265,12 +277,19 @@ class Packager(object): else: logging.warning("Unrecognized pattern type: %s" % pattern) + files = [] + for file in includes: + if file in excludes: + continue + + files.append(file) + files.sort() for file_real in files: file_tar = file_real[len(self.env.chrootPath(self.env.buildroot)) + 1:] - tar.add(file_real, arcname=file_tar) + tar.add(file_real, arcname=file_tar, recursive=False) if not os.path.isdir(file_real): os.unlink(file_real)