(url, sha, cloneDir, context)
| 609 | url=url, tag=tag, err=e)) |
| 610 | |
| 611 | def GitCloneSHA(url, sha, cloneDir, context): |
| 612 | try: |
| 613 | with CurrentWorkingDirectory(context.externalsSrcDir): |
| 614 | # TODO check if cloneDir is a cloned folder of url |
| 615 | if not os.path.exists(cloneDir): |
| 616 | Run("git clone --recurse-submodules {url} {folder}".format(url=url, folder=cloneDir)) |
| 617 | with CurrentWorkingDirectory(os.path.join(context.externalsSrcDir, cloneDir)): |
| 618 | Run("git checkout {sha}".format(sha=sha)) |
| 619 | elif not IsGitFolder(cloneDir): |
| 620 | raise RuntimeError("Failed to clone repo {url} ({tag}): non-git folder {folder} exists".format( |
| 621 | url=url, tag=tag, folder=cloneDir)) |
| 622 | return os.path.abspath(cloneDir) |
| 623 | except Exception as e: |
| 624 | raise RuntimeError("Failed to clone repo {url} ({tag}): {err}".format( |
| 625 | url=url, tag=tag, err=e)) |
| 626 | |
| 627 | def WriteExternalsConfig(context, externals): |
| 628 | win32Header = """ |
no test coverage detected