def makefile(self, cpioinfo, cpiogetpath):
"""Make a file called cpiogetpath.
"""
extractinfo = None
if cpioinfo.nlink == 1:
extractinfo = cpioinfo
else:
if cpioinfo.ino in self.inodes:
# actual file exists, create link
# FIXME handle platforms that don't support hardlinks
os.link(os.path.join(cpioinfo._link_path,
self.inodes[cpioinfo.ino][0]), cpiogetpath)
else:
extractinfo = self._datamember(cpioinfo)
if cpioinfo.ino not in self.inodes:
self.inodes[cpioinfo.ino] = []
self.inodes[cpioinfo.ino].append(cpioinfo.name)
if extractinfo:
source = self.extractfile(extractinfo)
cpioget = open(cpiogetpath, "wb")
copyfileobj(source, cpioget)
source.close()
cpioget.close()
评论列表
文章目录