コード例 #1
0
def test_load() -> None:
    contents = """
repos:
  - src: foo
    url: [email protected]:foo.git
    branch: next

  - src: bar
    url: [email protected]:bar.git
    branch: master
    sha1: ad2b68539c78e749a372414165acdf2a1bb68203

  - src: master
    url: [email protected]:master.git
    tag: v0.1
    copy:
      - src: top.cmake
        dest: CMakeLists.txt
      - src: .clang-format
"""
    manifest = tsrc.Manifest()
    parsed = ruamel.yaml.safe_load(contents)
    manifest.apply_config(parsed)
    assert manifest.get_repos() == [
        tsrc.Repo(
            remotes=[
                tsrc.repo.Remote(name="origin", url="[email protected]:foo.git")
            ],
            src="foo",
            branch="next",
            sha1=None,
            tag=None,
        ),
        tsrc.Repo(
            remotes=[
                tsrc.repo.Remote(name="origin", url="[email protected]:bar.git")
            ],
            src="bar",
            branch="master",
            sha1="ad2b68539c78e749a372414165acdf2a1bb68203",
            tag=None,
        ),
        tsrc.Repo(
            remotes=[
                tsrc.repo.Remote(name="origin",
                                 url="[email protected]:master.git")
            ],
            src="master",
            branch="master",
            sha1=None,
            tag="v0.1",
        ),
    ]
    assert manifest.copyfiles == [
        tsrc.Copy("master", "top.cmake", "CMakeLists.txt"),
        tsrc.Copy("master", ".clang-format", ".clang-format"),
    ]
コード例 #2
0
 def _handle_repo(self, repo_config: RepoConfig) -> None:
     src = repo_config["src"]
     branch = repo_config.get("branch", "master")
     tag = repo_config.get("tag")
     sha1 = repo_config.get("sha1")
     url = repo_config.get("url")
     if url:
         origin = tsrc.Remote(name="origin", url=url)
         remotes = [origin]
     else:
         remotes = self._handle_remotes(repo_config)
     repo = tsrc.Repo(src=src, branch=branch, sha1=sha1, tag=tag, remotes=remotes)
     self._repos.append(repo)
コード例 #3
0
ファイル: manifest.py プロジェクト: nilium/tsrc
 def load(self, contents):
     self.copyfiles = list()
     parsed = ruamel.yaml.safe_load(contents) or dict()
     self.gitlab = parsed.get("gitlab")
     repos = parsed.get("repos") or list()
     for repo_config in repos:
         repo_url = repo_config["url"]
         repo_src = repo_config["src"]
         repo_branch = repo_config.get("branch", "master")
         repo = tsrc.Repo(url=repo_url, src=repo_src, branch=repo_branch)
         self.repos.append(repo)
         if "copy" in repo_config:
             to_cp = repo_config["copy"]
             for item in to_cp:
                 src = os.path.join(repo_src, item["src"])
                 self.copyfiles.append((src, item["dest"]))
コード例 #4
0
    def load(self, data):
        self.copyfiles = list()
        self.gitlab = data.get("gitlab")
        repos = data.get("repos") or list()
        for repo_config in repos:
            url = repo_config["url"]
            src = repo_config["src"]
            branch = repo_config.get("branch", "master")
            fixed_ref = repo_config.get("fixed_ref")
            repo = tsrc.Repo(url=url,
                             src=src,
                             branch=branch,
                             fixed_ref=fixed_ref)
            self.repos.append(repo)

            self._handle_copies(repo_config)
コード例 #5
0
ファイル: test_manifest.py プロジェクト: sebastiken/tsrc
def test_load() -> None:
    contents = """
gitlab:
  url: http://gitlab.example.com
github_enterprise:
  url: http://github.example.com
repos:
  - src: foo
    url: [email protected]:foo.git
    branch: next

  - src: bar
    url: [email protected]:bar.git
    branch: master
    sha1: ad2b68539c78e749a372414165acdf2a1bb68203

  - src: master
    url: [email protected]:master.git
    tag: v0.1
    copy:
      - src: top.cmake
        dest: CMakeLists.txt
      - src: .clang-format
"""
    manifest = tsrc.Manifest()
    parsed = ruamel.yaml.safe_load(contents)
    manifest.load(parsed)
    assert manifest.gitlab
    assert manifest.gitlab["url"] == "http://gitlab.example.com"
    assert manifest.github_enterprise
    assert manifest.github_enterprise["url"] == "http://github.example.com"
    assert manifest.get_repos() == [
        tsrc.Repo(
            remotes=[
                tsrc.repo.Remote(name="origin", url="[email protected]:foo.git")
            ],
            src="foo",
            branch="next",
            sha1=None,
            tag=None,
        ),
        tsrc.Repo(
            remotes=[
                tsrc.repo.Remote(name="origin", url="[email protected]:bar.git")
            ],
            src="bar",
            branch="master",
            sha1="ad2b68539c78e749a372414165acdf2a1bb68203",
            tag=None,
        ),
        tsrc.Repo(
            remotes=[
                tsrc.repo.Remote(name="origin",
                                 url="[email protected]:master.git")
            ],
            src="master",
            branch="master",
            sha1=None,
            tag="v0.1",
        ),
    ]
    assert manifest.copyfiles == [
        (os.path.join("master", "top.cmake"), "CMakeLists.txt"),
        (os.path.join("master", ".clang-format"), ".clang-format"),
    ]