コード例 #1
0
ファイル: tar_utils.py プロジェクト: containers/podman-py
    def add_filter(info: tarfile.TarInfo) -> Optional[tarfile.TarInfo]:
        """Filter files targeted to be added to tarfile.

        Args:
            info: Information on the file targeted to be added

        Returns:
            None: if file is not to be added
            TarInfo: when file is to be added. Modified as needed.

        Notes:
            exclude is captured from parent
        """

        if not (info.isfile() or info.isdir() or info.issym()):
            return None

        if _exclude_matcher(info.name, exclude):
            return None

        # Workaround https://bugs.python.org/issue32713. Fixed in Python 3.7
        if info.mtime < 0 or info.mtime > 8 ** 11 - 1:
            info.mtime = int(info.mtime)

        # do not leak client information to service
        info.uid = 0
        info.uname = info.gname = "root"

        if sys.platform == "win32":
            info.mode = info.mode & 0o755 | 0o111

        return info
コード例 #2
0
 def _filter(self, tarinfo: tarfile.TarInfo):
     size = tarinfo.size
     if tarinfo.isdir():
         size = dir_size(
             os.path.join(self.temp_path, os.path.basename(tarinfo.name)))
     size = size_converter(size, self.is_for_human)
     self.logger.info('pack {0} → {1}'.format(tarinfo.name, size))
     return tarinfo
コード例 #3
0
ファイル: archive.py プロジェクト: Boccca2014/CodeGra.de
    def _member_is_safe(member: tarfile.TarInfo) -> bool:
        if member.isfile():
            return getattr(member, 'sparse', None) is None

        return member.isdir() or member.issym() or member.islnk()
コード例 #4
0
ファイル: tartools.py プロジェクト: oldpride/tpsup
 def my_filter(tarinfo: tarfile.TarInfo):
     if tarinfo.isfile() or tarinfo.isdir():
         # only handle basic file types for now
         return tarinfo
     else:
         return None
コード例 #5
0
 def _member_is_safe(member: tarfile.TarInfo) -> bool:
     return (
         member.isfile() or member.isdir() or member.issym() or
         member.islnk()
     )