summaryrefslogtreecommitdiff
path: root/tests/testutils/repo/tar.py
blob: 3eb9d896bc89342f1a0c3dc07ad50a5e75fdc321 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import os
import tarfile

from buildstream.utils import sha256sum

from buildstream.testing import Repo


class Tar(Repo):
    def create(self, directory):
        tarball = os.path.join(self.repo, "file.tar.gz")

        old_dir = os.getcwd()
        os.chdir(directory)
        with tarfile.open(tarball, "w:gz") as tar:
            tar.add(".")
        os.chdir(old_dir)

        return sha256sum(tarball)

    def source_config(self, ref=None):
        tarball = os.path.join(self.repo, "file.tar.gz")
        config = {"kind": "tar", "url": "file://" + tarball, "directory": "", "base-dir": ""}
        if ref is not None:
            config["ref"] = ref

        return config