Python tarfile.REGTYPE Examples
The following are 30
code examples of tarfile.REGTYPE().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tarfile
, or try the search function
.
Example #1
Source File: __init__.py From virt-bootstrap with GNU General Public License v3.0 | 6 votes |
def create_user_dirs(self, tar_handle): """ Create root file system tree in tar archive. """ tar_members = [ ['dirs', tarfile.DIRTYPE], ['files', tarfile.REGTYPE], ] for user in self.rootfs_tree: for members, tar_type in tar_members: self.create_tar_members( tar_handle, self.rootfs_tree[user][members], tar_type, uid=self.rootfs_tree[user]['uid'], gid=self.rootfs_tree[user]['gid'] )
Example #2
Source File: grr_utils.py From python-scripts with GNU General Public License v3.0 | 6 votes |
def WriteFromFD(self, src_fd, arcname=None, st=None): """Write an archive member from a file like object. Args: src_fd: A file like object, must support seek(), tell(), read(). arcname: The name in the archive this should take. st: A stat object to be used for setting headers. Raises: ValueError: If st is omitted. """ if st is None: raise ValueError("Stat object can't be None.") info = self.tar_fd.tarinfo() info.tarfile = self.tar_fd info.type = tarfile.REGTYPE info.name = SmartStr(arcname) info.size = st.st_size info.mode = st.st_mode info.mtime = st.st_mtime or time.time() self.tar_fd.addfile(info, src_fd)
Example #3
Source File: test_tarfile.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def _make_test_archive(filename_1, dirname_1, filename_2): # the file contents to write fobj = io.BytesIO(b"content") # create a tar file with a file, a directory, and a file within that # directory. Assign various .uid/.gid values to them items = [(filename_1, 99, 98, tarfile.REGTYPE, fobj), (dirname_1, 77, 76, tarfile.DIRTYPE, None), (filename_2, 88, 87, tarfile.REGTYPE, fobj), ] with tarfile.open(tmpname, 'w') as tarfl: for name, uid, gid, typ, contents in items: t = tarfile.TarInfo(name) t.uid = uid t.gid = gid t.uname = 'root' t.gname = 'root' t.type = typ tarfl.addfile(t, contents) # return the full pathname to the tar file return tmpname
Example #4
Source File: backend.py From netjsonconfig with GNU General Public License v3.0 | 6 votes |
def _add_file(self, tar, name, contents, mode=DEFAULT_FILE_MODE): """ Adds a single file in tarfile instance. :param tar: tarfile instance :param name: string representing filename or path :param contents: string representing file contents :param mode: string representing file mode, defaults to 644 :returns: None """ byte_contents = BytesIO(contents.encode('utf8')) info = tarfile.TarInfo(name=name) info.size = len(contents) # mtime must be 0 or any checksum operation # will return a different digest even when content is the same info.mtime = 0 info.type = tarfile.REGTYPE info.mode = int(mode, 8) # permissions converted to decimal notation tar.addfile(tarinfo=info, fileobj=byte_contents)
Example #5
Source File: tarwriter.py From qubes-core-admin with GNU Lesser General Public License v2.1 | 6 votes |
def __init__(self, name="", sparsemap=None): super(TarSparseInfo, self).__init__(name) if sparsemap is not None: self.type = tarfile.REGTYPE self.sparsemap = sparsemap self.sparsemap_buf = self.format_sparse_map() # compact size self.size = functools.reduce(lambda x, y: x+y[1], sparsemap, 0) + len(self.sparsemap_buf) self.pax_headers['GNU.sparse.major'] = '1' self.pax_headers['GNU.sparse.minor'] = '0' self.pax_headers['GNU.sparse.name'] = name self.pax_headers['GNU.sparse.realsize'] = str(self.realsize) self.name = '{}/GNUSparseFile.{}/{}'.format( os.path.dirname(name), os.getpid(), os.path.basename(name)) else: self.sparsemap = [] self.sparsemap_buf = b''
Example #6
Source File: test_tarfile.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def _make_test_archive(filename_1, dirname_1, filename_2): # the file contents to write fobj = io.BytesIO(b"content") # create a tar file with a file, a directory, and a file within that # directory. Assign various .uid/.gid values to them items = [(filename_1, 99, 98, tarfile.REGTYPE, fobj), (dirname_1, 77, 76, tarfile.DIRTYPE, None), (filename_2, 88, 87, tarfile.REGTYPE, fobj), ] with tarfile.open(tmpname, 'w') as tarfl: for name, uid, gid, typ, contents in items: t = tarfile.TarInfo(name) t.uid = uid t.gid = gid t.uname = 'root' t.gname = 'root' t.type = typ tarfl.addfile(t, contents) # return the full pathname to the tar file return tmpname
Example #7
Source File: test_tarfile.py From medicare-demo with Apache License 2.0 | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True os.link(self.foo, self.bar) tarinfo = self.tar.gettarinfo(self.bar) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "dereferencing hardlink failed") # Gzip TestCases
Example #8
Source File: test_tarfile.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "add file as regular failed")
Example #9
Source File: test_tarfile.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "dereferencing hardlink failed")
Example #10
Source File: test_tarfile.py From medicare-demo with Apache License 2.0 | 5 votes |
def test_readlines(self): """Test readlines() method of _FileObject. """ if self.sep != "|": filename = "0-REGTYPE-TEXT" self.tar.extract(filename, dirname()) f = open(os.path.join(dirname(), filename), "rU") lines1 = f.readlines() f.close() lines2 = self.tar.extractfile(filename).readlines() self.assert_(lines1 == lines2, "_FileObject.readline() does not work correctly")
Example #11
Source File: test_tarfile.py From medicare-demo with Apache License 2.0 | 5 votes |
def test_iter(self): # Test iteration over ExFileObject. if self.sep != "|": filename = "0-REGTYPE-TEXT" self.tar.extract(filename, dirname()) f = open(os.path.join(dirname(), filename), "rU") lines1 = f.readlines() f.close() lines2 = [line for line in self.tar.extractfile(filename)] self.assert_(lines1 == lines2, "ExFileObject iteration does not work correctly")
Example #12
Source File: test_tarfile.py From medicare-demo with Apache License 2.0 | 5 votes |
def test_old_dirtype(self): """Test old style dirtype member (bug #1336623). """ # Old tars create directory members using a REGTYPE # header with a "/" appended to the filename field. # Create an old tar style directory entry. filename = tmpname() tarinfo = tarfile.TarInfo("directory/") tarinfo.type = tarfile.REGTYPE fobj = open(filename, "w") fobj.write(tarinfo.tobuf()) fobj.close() try: # Test if it is still a directory entry when # read back. tar = tarfile.open(filename) tarinfo = tar.getmembers()[0] tar.close() self.assert_(tarinfo.type == tarfile.DIRTYPE) self.assert_(tarinfo.name.endswith("/")) finally: try: os.unlink(filename) except: pass
Example #13
Source File: test_tarfile.py From medicare-demo with Apache License 2.0 | 5 votes |
def test_1471427(self): """Test reading of longname (bug #1471427). """ name = "test/" * 20 + "0-REGTYPE" try: tarinfo = self.tar.getmember(name) except KeyError: tarinfo = None self.assert_(tarinfo is not None, "longname not found") self.assert_(tarinfo.type != tarfile.DIRTYPE, "read longname as dirtype")
Example #14
Source File: test_tarfile.py From medicare-demo with Apache License 2.0 | 5 votes |
def test_add_twice(self): # If st_nlink == 1 then the same file will be added as # REGTYPE every time. tarinfo = self.tar.gettarinfo(self.foo) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "add file as regular failed")
Example #15
Source File: test_tarfile.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "add file as regular failed")
Example #16
Source File: test_tarfile.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "add file as regular failed")
Example #17
Source File: test_tarfile.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "dereferencing hardlink failed")
Example #18
Source File: test_tarfile.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "add file as regular failed")
Example #19
Source File: test_tarfile.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "dereferencing hardlink failed")
Example #20
Source File: test_tarfile.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "dereferencing hardlink failed")
Example #21
Source File: test_tarfile.py From ironpython2 with Apache License 2.0 | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "dereferencing hardlink failed")
Example #22
Source File: test_tarfile.py From BinderFilter with MIT License | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "add file as regular failed")
Example #23
Source File: test_tarfile.py From BinderFilter with MIT License | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "dereferencing hardlink failed")
Example #24
Source File: test_tarfile.py From oss-ftp with MIT License | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "add file as regular failed")
Example #25
Source File: test_tarfile.py From oss-ftp with MIT License | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "dereferencing hardlink failed")
Example #26
Source File: test_tarfile.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "add file as regular failed")
Example #27
Source File: test_tarfile.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "dereferencing hardlink failed")
Example #28
Source File: test_tarfile.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_add_twice(self): # The same name will be added as a REGTYPE every # time regardless of st_nlink. tarinfo = self.tar.gettarinfo(self.foo) self.assertEqual(tarinfo.type, tarfile.REGTYPE, "add file as regular failed")
Example #29
Source File: test_tarfile.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_dereference_hardlink(self): self.tar.dereference = True tarinfo = self.tar.gettarinfo(self.bar) self.assertTrue(tarinfo.type == tarfile.REGTYPE, "dereferencing hardlink failed")
Example #30
Source File: test_blobuploader.py From quay with Apache License 2.0 | 5 votes |
def valid_tar_gz(contents): assert isinstance(contents, bytes) with closing(BytesIO()) as layer_data: with closing(tarfile.open(fileobj=layer_data, mode="w|gz")) as tar_file: tar_file_info = tarfile.TarInfo(name="somefile") tar_file_info.type = tarfile.REGTYPE tar_file_info.size = len(contents) tar_file_info.mtime = 1 tar_file.addfile(tar_file_info, BytesIO(contents)) layer_bytes = layer_data.getvalue() return layer_bytes